cronでスクリプトを実行しましょう

cronでスクリプトを実行しましょう

crontabエントリに基づいて実行するスクリプトを取得しようとしています。私のスクリプトは端末で正しく実行されますが、cronエントリに基づいて自動的には実行されません。スクリプトは、時間ごとに/testexport1ディレクトリに空のファイルを作成します。

次のようにcrontab -eを使用してcrontabを編集します。

30 * * * * /bin/bash/ /testexport1/./createfilescript.sh

スクリプト自体は次のとおりです。

[root@centostest testexport1]# cat createfilescript.sh
#!/bin/bash

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/testexport1

today="$( date +"%Y%m%d" )"
number=0

while test -e "$today$suffix.txt"; do
    (( ++number ))
    suffix="$( printf -- '-%02d' "$number" )"
done

fname="$today$suffix.txt"

printf 'Will use "%s" as filename\n' "$fname"
touch "$fname"

スクリプトを実行する場所を指定するために、スクリプトの上部にPATHセクションを追加しました(私が読んだ他の記事に基づいています)。

このcrontabエントリがスクリプトを実行していないような理由をご存知ですか?私はこれが簡単な修正だと確信していますが、今は円を描いています。

ベストアンサー1

/bin/bash/crontabはスクリプトが見つからないため、スクリプトを実行していません。これは、(/bin/bash最後に見つからない内容を確認する)またはシステム上の正しいパスに変更する必要があります。/bash

また、スクリプトで使用されているすべてのユーティリティが実際に$PATH設定で見つかったことを確認してください。より一般的に調整パスを上書きするのではなく、パスを上書きすることをお勧めします。システムパスには、touch同様のコンテンツを見つけることができるディレクトリが含まれることが多いからです。

おすすめ記事