/ / बैश से क्रॉन जॉब सेट करना त्रुटियां दे रहा है - linux, bash, shell, cron

बैशन से क्रॉन जॉब सेट अप त्रुटियां दे रहा है - लिनक्स, बैश, खोल, क्रॉन

मैं बैश स्क्रिप्ट का उपयोग करके रिमोट सर्वर में क्रॉन जॉब सेट करने की कोशिश कर रहा हूं। कमांड इस प्रकार है:

ssh $NODE_USER@$NODE_HOST "cat <(crontab -l) <(echo "33 03 * * 0-6 $Scripts_dir/runStaticHTML.sh -c $Scripts_dir/staticHTML.conf") | crontab - "

जब मैं सीधे सर्वर के अंदर इस कमांड को निष्पादित करता हूं, तो यह ठीक चलता है। लेकिन जब मैं इस बैश को चलाता हूं, तो यह निम्नलिखित त्रुटि दे रहा है

copysetup.sh: command substitution: line 68: syntax error near unexpected token `("
copysetup.sh: command substitution: line 68: `cat <(crontab -l) < (echo "33 03 * * 0-6 $Scripts_dir/runStaticHTML.sh -c $Scripts_dir/staticHTML.conf") | crontab - "

और यह दूरस्थ सर्वर में प्रवेश को समाप्त कर देगा।

जब मैं सर्वर से बाहर निकलता हूं, तो यह निम्नलिखित त्रुटि देता है। विम: चेतावनी: आउटपुट एक टर्मिनल के लिए नहीं है विम: चेतावनी: इनपुट एक टर्मिनल से नहीं है

उत्तर:

उत्तर № 1 के लिए 1

The ssh सर्वर का उपयोग कर आदेश चल रहा है sh, नहीं bash, तो यह समझ में नहीं आता <(command) (यह एक बैश विस्तार है).

आप इस के लिए प्रक्रिया प्रतिस्थापन का उपयोग करने की जरूरत नहीं है.कोशिश करना:

ssh $NODE_USER@$NODE_HOST "(crontab -l; echo "33 03 * * 0-6  $Scripts_dir/runStaticHTML.sh -c $Scripts_dir/staticHTML.conf") | crontab -"

यह भी ध्यान दें कि चर $Scripts_dir स्थानीय मशीन पर विस्तृत है, सर्वर नहीं.