0

Amazon ec2 でサーバーを作成し、bash スクリプトをユーザーデータとして渡しています。これは、サーバーの最初の起動時に実行されます。ここで与えられた回答を使用して、ユーザーの crontab に行を追加するコマンドが含まれています。

directory="/home/intahwebz/current/tools/amazon/"
command="cd $directory && sh backupSQLToS3.sh"
job="15 1 */2 * * $command"
cat <(fgrep -i -v "$command" <(crontab -u intahwebz -l)) <(echo "$job") | crontab -u intahwebz -

このスクリプトは、エラー メッセージを表示せず、cronjob が crotab にインストールされているため、起動時に正常に動作しているように見えます。

ただし、サーバーのアップグレード中にもスクリプトを実行したいと思います。コマンド ラインからスクリプトを実行しようとすると、次のエラーが表示されます。

installCrontab.sh: line 14: syntax error near unexpected token `('
installCrontab.sh: line 14: `cat <(fgrep -i -v "$command" <(crontab -u intahwebz -l)) <(echo "$job") | crontab -u intahwebz -'

このエラーを修正するには何が必要ですか?

4

2 に答える 2

1

あなたのアプローチは私にとって完璧に機能しています:

$ whoami
test

$ echo $SHELL
/bin/bash

$ command="cd $directory && sh backupSQLToS3.sh"

$ job="15 1 */2 * * $command"

$ crontab -l


$ cat <(fgrep -i -v "$command" <(crontab -u test -l)) <(echo "$job") | crontab -u test -

$ crontab -l

15 1 */2 * * cd  && sh backupSQLToS3.sh

「ディレクトリ」変数を設定できませんでしたが、コードは正常に機能します。

于 2013-01-24T12:22:08.957 に答える
0

bourneシェル(/bin/sh)を使用してbashスクリプトを実行しているようです。bashの代わりに使用してみてくださいsh

于 2013-01-24T12:13:05.733 に答える