Pertanyaan Di mana pengguna crontab disimpan?


Karena peningkatan crontab pengguna saya telah dihapus. Ini bukan pertama kalinya ini terjadi tahun ini dan itu adalah rasa sakit memulihkannya setiap kali.

Saya ingin dapat mencadangkan crontab untuk pengguna saya tetapi untuk itu saya perlu tahu di mana itu disimpan.


217
2017-11-13 14:26


asal


alangkah baiknya jika seseorang juga bisa memberikan alasan mengapa hal itu dihapus - Walter Tross
@WalterTross Ya itu cukup menjengkelkan. Saya kira itu adalah efek samping memperbarui cron paket tapi saya setuju - itu bukan sesuatu yang harus terjadi. - Oli♦
Eh, saya tidak cron pengguna yang dihapus per upgrade paket cron! - pl1nk
@ pl1nk Saya tidak tahu apa yang menghapusnya tetapi itu terus terjadi. Hantu di mesin, saya kira. - Oli♦
Tabel pengguna disimpan pada area sementara / var / spool / cron / crontabs / $ USER, karena itu dapat dihapus pada boot atau peningkatan berikutnya. - fcm


Jawaban:


Sebenarnya, tidak disarankan untuk menangani file-file itu dengan tangan. Per crontab halaman manual:

Setiap pengguna dapat memiliki crontab mereka sendiri, dan meskipun demikian
  ini adalah file /var/spool/cron/crontabs, mereka tidak
  dimaksudkan untuk diedit secara langsung.

File di bawah /var/spool dianggap sementara / bekerja, itulah mengapa mereka mungkin dihapus selama peningkatan, meskipun melihat lebih dekat pada cron skrip peningkatan paket dapat menjelaskan hal ini.

Bagaimanapun, itu selalu merupakan praktik yang baik untuk membuat cadangan entri cron Anda atau menyimpannya dalam file di direktori home Anda.

Saya berasumsi Anda menggunakan crontab -e untuk membuat file crontab dengan cepat. Jika demikian, Anda bisa mendapatkan "salinan" dari file crontab Anda dengan melakukan crontab -l. Pipa itu ke file untuk mendapatkan "cadangan":

crontab -l > my-crontab

Kemudian Anda dapat mengedit file my-crontab untuk menambah atau memodifikasi entri, dan kemudian "menginstal" dengan memberikannya ke crontab:

crontab my-crontab

Ini melakukan pemeriksaan sintaks yang sama dengan crontab -e.


279
2017-11-13 15:21



crontab -l lebih mudah daripada melalui /var/spool/cron/crontabs/$USER sebagian besar karena izin yang aneh pada file itu. - Oli♦
Itu iptables-save dari cron. Bagus... - Parthian Shot
jika Anda menggunakan akun root untuk crontab, maka sudo crontab -l> root-crontab untuk root crontab! - FreeSoftwareServers
Mungkin kita harus meletakkan crontab untuk secara otomatis kembali sendiri> :)? - PascalVKooten
Melahirkan /var/spool/cron/crontabssangat berguna ketika Anda ingin mengkurasi atau memeriksa crontabs dari beberapa pengguna. - dhasenan


Itu disimpan di dalam /var/spool/cron/crontabs folder di bawah nama pengguna.


46
2017-11-13 14:29





Saya akhirnya tahu Mengapa crontab dan instalasi Postfix saya terus terputus setelah boot. Itu alasan yang sangat bodoh tapi ...

Saya punya /var/spool terpasang sebagai tmpfs RAM-drive.

Kedengarannya bodoh dan itu, tapi saya telah mengikuti salah satu dari SSD lama-tweak untuk memperpanjang umur SSD saya. Dengan melakukan itu, saya membabi buta /tmp, /var/tmp dan /var/spool sebagai tmpfs tanpa memikirkan dampaknya. saya pikir /var/spool seperti /proc/ atau /run/ dan itu hanya berguna untuk durasi sesi. Saya jelas salah.


27
2018-05-30 13:20



Itu harus aman untuk dipasang /tmp sebagai tmpfs, tetapi tidak /var/tmp atau /var/spool. /tmp digunakan untuk penyimpanan sementara yang mungkin hilang saat reboot. /var/tmp digunakan untuk penyimpanan sementara yang akan tetap ada setelah reboot. Dan seperti yang Anda temukan, /var/spool adalah untuk data yang akan diproses, yang juga akan tetap ada setelah reboot. - thomasrutter
Lihat pathname.com/fhs/2.2/fhs-5.15.html - thomasrutter
Perhatikan juga bahwa jumlah tulis tidak lagi menjadi masalah dengan SSD modern. - thomasrutter


Untuk membuat daftar semua tugas cron dari semua pengguna di sistem Anda:

for user in $(cut -f1 -d: /etc/passwd)
do
  echo $user
  crontab -u $user -l
done

Alternatif untuk masalah Anda adalah menempatkannya di folder cron.d dan menentukan pengguna yang sesuai per cron seperti pada contoh:

00 01 * * * user /home/user/user-script.sh

10
2018-03-28 12:39



jika Anda memulihkan crontab dari drive lain, ini tidak akan berfungsi karena crontab -u sedang berjalan dari sistem Anda saat ini. - JVE999
Sementara saya kira itu adalah satu-liner dalam yang cocok dalam kurang dari 80 karakter dan agak terbaca, saya biasanya suka menempatkan kode dalam format sedemikian rupa sehingga seseorang dapat menyalin-tempel atau memasukkannya ke dalam skrip (dan, dalam naskah, ini akan tidak menjadi satu baris kode). Menyarankan edit ... - Parthian Shot
Juga, saya akan mengubahnya menjadi while read user loop, untuk menangani kasus di mana nama pengguna berisi spasi, tetapi tampaknya itu bukan masalah. Kumpulan karakter nama pengguna yang sangat terbatas. - Parthian Shot