Ada dua cara untuk mengedit crontab
:
secara interaktif, menggunakan crontab -e
, yang akan membuka crontab
editor yang ditentukan oleh $VISUAL
atau $EDITOR
, atau
non-interaktif, menggunakan crontab crontab.txt
, yang hanya akan mengimpor crontab
entri dari file crontab.txt
, menggantikan crontab aktif yang ada untuk pengguna saat ini.
Masalah yang Anda miliki adalah bahwa Anda hanya menggunakan crontab
perintah yang salah.
Berikut ini menyangkut manipulasi crontab non-interaktif:
Jadi, untuk menghapus tugas tertentu secara terprogram, Anda dapat melakukan sesuatu seperti
$ crontab -l | grep -v 'PATTERN' >crontab.txt && crontab crontab.txt
di mana PATTERN
ekspresi reguler yang cocok dengan tugas yang ingin Anda hapus. Di sini, crontab -l
akan memberi Anda saat ini crontab
.
Atau, jika Anda memiliki entri dalam file bernama crontab-fragment.txt
yang ingin Anda hapus dari crontab aktif,
$ crontab -l | grep -v -Fx -f crontab-fragment.txt >crontab.txt && crontab crontab.txt
Ini membaca crontab saat ini dan memfilter (menghapus) setiap baris yang juga terjadi pada file crontab-fragment.txt
di direktori saat ini (menggunakan perbandingan string baris penuh). Hasilnya disimpan ke crontab.txt
dan kemudian dimuat dari sana untuk mengganti crontab saat ini.
Untuk menambahkan satu atau beberapa tugas , lakukan sesuatu seperti
$ crontab -l | cat - crontab-fragment.txt >crontab.txt && crontab crontab.txt
Ini dengan asumsi bahwa file tersebut crontab-fragment.txt
berisi entri yang ingin Anda tambahkan. Bunyinya crontab saat ini, menambahkan entri dari crontab-fragment.txt
ini dan membuat crontab.txt
. The crontab.txt
file maka menggantikan crontab saat ini.