crontabが正常に動作しているかどうかを知らせるcrontabログはありますか?私はLinux Mint 17.3を使用しています。
私がしたこと:
crontab -e
ルートとして実行- 存在しないので、nano editorを選択して続行します。
- この行を入力してください
00 12 * * * /home/vlastimil/Development/bash/full-upgrade.sh
- 保存と終了
私の目標は、1日12時間(真夜中ではなく正午)を自動更新することです。この記事は、この目標を達成するための最良の方法を議論する意図ではありません。
/home/vlastimil/Development/bash/full-upgrade.sh
次の内容でファイルを作成しました。
#!/bin/bash
apt-get update && apt-get dist-upgrade -y && apt-get --purge autoremove -y
最後に、ファイルに対して755権限を設定しました。
どのようにテストするのかわかりません。動作しますか?
答え1
関連する syslog デーモンとそのロギングの設定方法によっては、ログが syslog に移動することがあります。
grep -r cron /etc/*syslog*
システムでどこで何が起こったのかを調べてください。または derobert によると、systemd
関連するコマンドは次のようになります。
journalctl -b 0 _SYSTEMD_UNIT=cron.service
ファイルに関連するテストクローンタスクを追加した場合(/tmp
セキュリティ上の理由から、ベンダーがユーザーごとにプライベートに設定しない限り望ましい場合)、クローンが機能していることを確認する必要があります。テストクローン操作がパーティションを埋める前に最終的に削除されていることを確認してください。なんかバカみたいだな
その他のユーザビリティとセキュリティのガイドライン:一部のcronデーモンはスクリプトを直接実行することができ、その場合はスクリプトをにコピーすることができます/etc/cron.daily
。しかし、これは(他のすべてと一緒に!)一番上で実行したくないタスクには適していない可能性があります。root
ユーザーのホームディレクトリからスクリプトを実行するのは非常に悪いかもしれません。これは、ユーザーアカウントが破損してルートアクセス権を取得したり、ホームディレクトリがNFSにある場合や暗号化されている場合、スクリプトが不必要に失敗する可能性があるためです。これを避けてください(ローカルファイルシステムのデフォルト設定/root/bin
に従って/usr/local
または依存しています)。/opt
より多くのポインタがシェルスクリプトのデバッグ領域に属します。最も重要なことは、cronがシェルではないことに注意するか、cronの下の設定を見て正しいことを確認することです。env
(set
古くPATH
て恐ろしいLinuxカーネルのバグに関連しています。Javaデーモンはクラッシュしますが、前提条件はデバッグのためにcronで実行されるということです...)