Berikut cara satu-liner lain, yang menghindari duplikat
(crontab -l 2>/dev/null | fgrep -v "*/1 * * * * your_command"; echo "*/1 * * * * your_command") | crontab -
Dan inilah cara untuk melakukan jawaban dan menghindari no crontab for user
pesan dari JohnZ , atau jika Anda perlu beroperasi di set -eu
lingkungan tipe dan tidak bisa mendapatkan apa pun yang mengembalikan kegagalan (dalam hal ini 2>/dev/null
bagian ini opsional):
( (crontab -l 2>/dev/null || echo "") ; echo "0 * * * * your_command") | sort -u - | crontab -
Atau jika Anda ingin membagi beberapa hal agar lebih mudah dibaca:
new_job="0 * * * * your_command"
preceding_cron_jobs=$(crontab -l || echo "")
(echo "$preceding_cron_jobs" ; echo "$new_job") | sort - | uniq - | crontab -
Atau secara opsional menghapus referensi ke perintah_Anda (mis: jika jadwal telah berubah, Anda hanya ingin itu pernah dicatat sekali). Dalam hal ini kita tidak lagi membutuhkan uniq
(bonus tambahan, urutan penyisipan juga dipertahankan):
new_job="0 * * * * your_command"
preceding_cron_jobs=$(crontab -l || echo "")
preceding_cron_jobs=$(echo "$preceding_cron_jobs" | grep -v your_command )
(echo "$preceding_cron_jobs" ; echo "$new_job") | crontab -