मेरे पास एक रूबी स्क्रिप्ट है जो अमेज़ॅन एस 3 बाल्टी से जुड़ती है और नवीनतम उत्पादन बैकअप डाउनलोड करती है। मैंने स्क्रिप्ट का परीक्षण किया है (जो बहुत आसान है) और यह ठीक काम करता है।क्रोन जॉब मणि लोड नहीं कर सकता
हालांकि, जब मैं इस स्क्रिप्ट को क्रॉन नौकरी के रूप में चलाने के लिए शेड्यूल करता हूं तो यह असफल लगता है जब यह अमेज़ॅन (aws-s3) मणि लोड करता है।
मेरी स्क्रिप्ट की पहली कुछ पंक्तियों इस तरह दिखता है:
#!/usr/bin/env ruby
require 'aws/s3'
जैसा कि मैंने कहा, जब मैं इस स्क्रिप्ट मैन्युअल रूप से चलाना है, यह ठीक काम करता है। जब मैंने इसे एक अनुसूचित क्रॉन जॉब के माध्यम से चलाने के लिए, यह विफल रहता है, जब यह मणि लोड करने के लिए कोशिश करता है:
`की आवश्यकता होती है ': लोड करने के लिए ऐसी कोई फाइल नहीं - एडब्ल्यूएस/S3 (LoadError)
इस स्क्रिप्ट के लिए crontab इस तरह दिखता है:
0 3 * * * ~/Downloader/download.rb > ~/Downloader/output.log 2>&1
मैं मूल रूप से, क्योंकि क्रॉन एक अन्य उपयोगकर्ता के रूप में चल रहा है यह हो सकता है सोचा था, लेकिन जब मैं अपने गहरे लाल रंग का स्क्रिप्ट के शुरू में एक 'Whoami' क्या यह मुझे यह चल रहा है बताता है उसी उपयोगकर्ता के रूप में मैं हमेशा उपयोग करता हूं।
मैंने एक बंडल इनिट भी किया है और मेरे रत्न में मणि जोड़ा है, लेकिन ऐसा कोई प्रभाव नहीं प्रतीत होता है।
क्रॉन मणि को लोड करने में विफल क्यों होता है? मैं उबंटू चला रहा हूँ।
बाहर निकलता है मुझे उस खोल में rubygems स्थापित करने की आवश्यकता है। इससे मुझे इसे ट्रैक करने में मदद मिली। –