次のcronjobが機能しないのはなぜですか?手動で実行されたスクリプトが機能するため、cronジョブに入れても実行されません。
#--------Reports-------------
25 11 * * * /logs/scripts/chim/currbalance_dump.sh >> /logs/currbal.log
スクリプトは次のとおりです。
#!/bin/bash
sftp [email protected] << SFTP
cd /home/sftpadm/BanKo/CurrBalance/
mget banko_current_balance_`date +%Y%m%d`.csv /logs/Reports/BanKo/CurrBalance
SFTP
exit
フォルダは
/logs/scripts/chim/currbalance_dump.sh
-rwxrwxrwx 1 kycadm kycadm 174 Sep 29 09:43 currbalance_dump.sh
答え1
selinuxが問題ではないことを確認してください(rootとして):
audit2allow /var/log/audit/audit.log
問題に応じて、次のことを許可するポリシーを作成できます。
audit2allow -m local-log-script -o local-log-script.te /var/log/audit/audit.log
スクリプトに必要なものだけを含めるように編集し、selinuxポリシーファイルを作成してインポートします。
checkmodule -M -m -o local-log-script.mod local-log-script.te
semodule_package -o local-log-script.pp -m local-log-script.mod
semodule -i local-log-script.pp
私は通常、これらすべてのファイルを次の場所に保存します。/etc/selinux/custom/
答え2
/etc/crontab ファイルへの読み取り/書き込みアクセス権があると仮定すると、タスク行に次のユーザー名を含める必要があります。
crontab -l -u username
25 11 * * * username /logs/scripts/chim/currbalance_dump.sh >> /logs/currbal.log
ユーザー固有のクローンジョブスクリプトは/var/spool/cron/usernameにあります。
また、bashスクリプトに実行可能ビットが設定されており、スクリプトを実行しているユーザーが/logs/scripts/chim/ディレクトリにアクセスできることを確認してください。
chmod +x currbalance_dump.sh
すべてのスクリプトを1つのディレクトリに配置し、run-partsユーティリティを使用してそのディレクトリ内のすべてのスクリプトを実行することもできます。
上記のすべてが正常な場合は、crondデーモンが実行されていることを確認してください。
service crond status
service crond start
新しいcronジョブが作成されるたびにcrondデーモンを再起動する必要はありません。
また、ユーザーがcronジョブを実行できることを確認してください。
less /etc/cron.allow
less /etc/cron.deny