Anda benar-benar ingin menggunakan at
. Itu dibuat persis untuk tujuan ini.
echo /usr/bin/the_command options | at now + 1 day
Namun jika Anda tidak memiliki at
, atau perusahaan hosting Anda tidak menyediakan akses ke sana, Anda dapat membuat entri cron yang menghapus sendiri.
Sayangnya, ini akan menghapus semua entri cron Anda. Namun, jika Anda hanya memiliki satu, tidak apa-apa.
0 0 2 12 * crontab -r ; /home/adm/bin/the_command options
Perintah crontab -r
menghapus entri crontab Anda. Untungnya baris perintah lainnya masih akan dijalankan.
PERINGATAN:Ini berbahaya! Ini menghapus SEMUA entri cron. Jika Anda memiliki banyak, ini akan menghapus semuanya, bukan hanya yang memiliki baris "crontab -r"!
Anda benar-benar ingin menggunakan at
. Itu dibuat persis untuk tujuan ini.
echo /usr/bin/the_command options | at now + 1 day
Namun jika Anda tidak memiliki at
, atau perusahaan hosting Anda tidak menyediakan akses ke sana, Anda dapat memiliki tugas cron yang menyertakan kode yang memastikannya hanya berjalan sekali.
Siapkan entri cron dengan waktu yang sangat spesifik:
0 0 2 12 * /home/adm/bin/the_command options
Berikutnya /home/adm/bin/the_command perlu memastikan bahwa itu hanya berjalan sekali.
#! /bin/bash
COMMAND=/home/adm/bin/the_command
DONEYET="${COMMAND}.alreadyrun"
export PATH=/usr/bin:$PATH
if [[ -f $DONEYET ]]; then
exit 1
fi
touch "$DONEYET"
# Put the command you want to run exactly once here:
echo 'You will only get this once!' | mail -s 'Greetings!' [email protected]
Coba ini untuk menjalankan perintah pada 30 Maret 2011 tengah malam:
0 0 30 3 ? 2011 /command
PERINGATAN :Seperti disebutkan dalam komentar, tahun kolom tidak didukung dalam implementasi standar/default cron. Silakan merujuk ke jawaban TomOnTime di bawah ini, untuk cara yang tepat menjalankan skrip pada waktu tertentu di masa mendatang dalam implementasi standar cron.