アップグレードしてから、ユーザーのcrontabは削除されました。これは今年これが起こったのは初めてではなく、毎回それを回復するのは苦痛です。
ユーザーのcrontabをバックアップできるようにしたいのですが、そのためにはどこに保存されているかを知る必要があります。
実際、これらのファイルを手作業で処理することはお勧めできません。 crontab
のmanページごと:
各ユーザーは独自のcrontabを持つことができますが、
これらは/var/spool/cron/crontabs
のファイルですが、そうではありません
直接編集することを意図。
/var/spool
の下のファイルは一時的/作業中と見なされます。そのため、おそらくアップグレード中に削除されますが、cron
パッケージのアップグレードスクリプトを詳しく見ると、この点がわかります。
とにかく、cronエントリをバックアップするか、ホームディレクトリのファイルに保存することをお勧めします。
crontab -e
を使用してその場でcrontabファイルを作成していると思います。その場合、crontab -l
を実行することにより、crontabファイルの「コピー」を取得できます。それをファイルにパイプして「バックアップ」を取得します。
crontab -l > my-crontab
次に、そのmy-crontabファイルを編集してエントリを追加または変更し、それをcrontabに渡すことで「インストール」できます。
crontab my-crontab
これは、crontab -e
と同じ構文チェックを行います。
ユーザー名の下の/var/spool/cron/crontabs
フォルダー内に保存されます。
why crontabとPostfixのインストールがブート後も壊れ続けることがわかりました。それは本当に愚かな理由ですが...
/var/spool
をtmpfs
RAMドライブとしてマウントしました。
ばかげているように聞こえますが、SSDの寿命を延ばすために、私は古いSSDの微調整の1つに従っていました。そうすることで、私は/tmp
、/var/tmp
、および/var/spool
をtmpfs
として盲目的にマウントしました。 /var/spool
は/proc/
または/run/
のようなもので、セッションの期間中のみ有用だと思いました。私は明らかに間違っていました。
システム内のすべてのユーザーからのすべてのcronジョブをリストするには:
for user in $(cut -f1 -d: /etc/passwd)
do
echo $user
crontab -u $user -l
done
あなたの問題に代わる方法は、cron.dフォルダーにそれらを配置し、cronごとに適切なユーザーを例のように指定することです。
00 01 * * * user /home/user/user-script.sh