web-dev-qa-db-ja.com

ユーザーのcrontabはどこに保存されますか?

アップグレードしてから、ユーザーのcrontabは削除されました。これは今年これが起こったのは初めてではなく、毎回それを回復するのは苦痛です。

ユーザーのcrontabをバックアップできるようにしたいのですが、そのためにはどこに保存されているかを知る必要があります。

245
Oli

実際、これらのファイルを手作業で処理することはお勧めできません。 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と同じ構文チェックを行います。

320
roadmr

ユーザー名の下の/var/spool/cron/crontabsフォルダー内に保存されます。

49

why crontabとPostfixのインストールがブート後も壊れ続けることがわかりました。それは本当に愚かな理由ですが...

/var/spooltmpfs RAMドライブとしてマウントしました。

ばかげているように聞こえますが、SSDの寿命を延ばすために、私は古いSSDの微調整の1つに従っていました。そうすることで、私は/tmp/var/tmp、および/var/spooltmpfsとして盲目的にマウントしました。 /var/spool/proc/または/run/のようなもので、セッションの期間中のみ有用だと思いました。私は明らかに間違っていました。

29
Oli

システム内のすべてのユーザーからのすべての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
16
pl1nk