Apa cara sederhana untuk menjalankan perintah, katakanlah, 8 jam dari sekarang? Saya bisa memikirkan cara ini:
nohup bash -c "sleep 28800 ; ./mycommand.sh" &
Apakah ada cara yang lebih "layak"?
bash
command-line
schedule
Steve Bennett
sumber
sumber
nohup
+sleep
? Mengapa "tidak pantas"?Jawaban:
Anda bisa menggunakan
at
perintah. Theat
menjalankan perintah di lain waktu. Theat
utilitas akan membaca perintah dari input standar dan kelompok mereka bersama-sama sebagai di-job, akan dieksekusi di lain waktu.Biasanya,
at
diinstal secara default di Ubuntu, tetapi jika rilis Anda tidak menyertakannya, instal melalui:Untuk informasi lebih lanjut, opsi, contoh, dan lainnya lihat Ubuntu Manpage Repository
Contoh:
Anda juga dapat menggunakan steno yang mudah digunakan, seperti
tomorrow
ataunoon
, seperti dalamPeringatan: Ini akan menjalankan perintah di sebelah kiri pipa segera tetapi hanya menyajikan hasilnya nanti. Contoh ini juga menunjukkan bagaimana Anda dapat menyalurkan aksi
at
.at -c
adalah cara Anda dapat memeriksa tindakan yang dijadwalkan, yang dapat Anda daftarkan dengan mudah dengan jumlahnya, seperti:sumber
at now +8 hours -f ~/myscript.sh
at 8:00
untuk menjalankan perintah pada waktu yang absolut, danbatch
untuk "ketika sepertinya komputer dalam keadaan diam"teatime
jam 4 sore. Untuk beberapa alasan itu tidak disebutkan dalam manpages.ubuntu.com/manpages/raring/man1/at.1posix.html tetapi ada diman at
dan di sini manpages.ubuntu.com/manpages/raring/en/man1/at.1.html .gpio write 8 1
tetapi dieksekusi segera.Ya, Anda dapat mengatur pekerjaan cron.
Misalnya jika sekarang waktunya 14:39:00 dan hari ini adalah Jumat, 30 Agustus, Anda dapat menambahkan tugas cron berikut (akan dieksekusi setelah 8 jam) dalam file crontab Anda menggunakan
crontab -e
perintah:Lebih tentang:
sumber
crontab
sampai Anda menghapusnya. Setahun kemudian, ketika Anda lupa siapa yang meletakkannya di sana dan mengapa, Anda akan dibiarkan menggaruk-garuk kepala bertanya-tanya apa yang harus dilakukan dengan perintah.Gunakan GUI berbasis Gnome untuk
cron
,at
, dan sejenisnya:Pengenalan CronHowto menyarankan penggunaan
gnome-schedule
gui, yang jauh lebih bagus daripada mengetik semua sampah ke terminal (khususnya untuk pengguna "rata-rata" Ubuntu yang bukan "kekuatan" * pengguna nix / bsd.)Jalankan dengan menggunakan Unity Dash (atau menu aplikasi lain) untuk mencari Tugas Terjadwal atau menjalankan
gnome-schedule
.Menggunakan
gnome-schedule
, untuk skrip di direktori home Anda, perintah "at" baru akan diatur menggunakan jenis jendela ini:sumber
Saya menemukan cara cepat dan kotor untuk melakukan ini sebelum saya tahu
at
ada sesuatu.Katakan Anda ingin skrip Anda dijalankan pada siang hari:
Katakan Anda ingin menjalankannya besok siang (hari ini 24 November untuk saya):
Pembaruan : Metode yang sedikit lebih baik: hanya menguji angka yang Anda pedulikan, menggunakan
date +FORMAT
:sumber
at
,cron
, atau aplikasi scheduler nyata lainnya. Penjadwalan tugas itu sulit, dan bukan roda yang harus Anda temukan kembali.at
.at
adalah karena tugasnya akan selamat dari reboot.