Saya menggunakan crontab untuk pertama kalinya. Ingin menulis beberapa tugas cron tes yang sangat sederhana, dan jalankan.
$crontab * * * * * echo "Hi"
tidak menghasilkan apa-apa.
crontab */1 * * * * echo "hi"
kata */1: No such file or directory
.
Juga, bagaimana cara mendaftar tugas cron yang sedang berjalan (bukan hanya yang saya miliki, tetapi yang dimulai oleh pengguna lain seperti root juga).
Dan bagaimana cara menghapus tugas cron tertentu?
cron
administration
xyz
sumber
sumber
Jawaban:
Anda tidak bisa menggunakan
crontab
seperti itu. Gunakanman crontab
untuk membaca tentang cara memanggil utilitas ini dengan benar.Anda ingin menggunakan
crontab -e
untuk mengedit entri cron pengguna saat ini (Anda dapat menambah / memodifikasi / menghapus baris). Gunakancrontab -l
untuk melihat daftar tugas yang dikonfigurasikan saat ini.Adapun melihat crontab pengguna lain, itu tidak mungkin tanpa menjadi root pada instalasi default. Lihat Bagaimana cara mendaftar semua pekerjaan cron untuk semua pengguna untuk beberapa cara untuk mendaftar semuanya (sebagai root).
Catatan: berhati-hatilah saat Anda menggunakan karakter globbing shell pada baris perintah (
*
dan?
terutama).*
akan diperluas ke daftar file di direktori saat ini, yang dapat memiliki efek yang tidak diharapkan. Jika Anda ingin memberikan*
argumen pada sesuatu, kutiplah ('*'
).sumber
mail
dari baris perintah harus mengakses kotak surat lokal Anda, jika dikonfigurasi.) Untuk melihat 'hi' di lingkungan grafis, Anda bisa mengatur tugas sebagai:* * * * * export DISPLAY=:0; xmessage 'hi'
.Ada dua cara untuk mengedit
crontab
:secara interaktif, menggunakan
crontab -e
, yang akan membukacrontab
editor yang ditentukan oleh$VISUAL
atau$EDITOR
, ataunon-interaktif, menggunakan
crontab crontab.txt
, yang hanya akan mengimporcrontab
entri dari filecrontab.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
di mana
PATTERN
ekspresi reguler yang cocok dengan tugas yang ingin Anda hapus. Di sini,crontab -l
akan memberi Anda saat inicrontab
.Atau, jika Anda memiliki entri dalam file bernama
crontab-fragment.txt
yang ingin Anda hapus dari crontab aktif,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 kecrontab.txt
dan kemudian dimuat dari sana untuk mengganti crontab saat ini.Untuk menambahkan satu atau beberapa tugas , lakukan sesuatu seperti
Ini dengan asumsi bahwa file tersebut
crontab-fragment.txt
berisi entri yang ingin Anda tambahkan. Bunyinya crontab saat ini, menambahkan entri daricrontab-fragment.txt
ini dan membuatcrontab.txt
. Thecrontab.txt
file maka menggantikan crontab saat ini.sumber
Jika Anda ingin memodifikasi crontab secara interaktif, jalankan perintah
crontab -e
, tanpa opsi lain. Ini akan memulai editor pada salinan crontab; ketika Anda keluar dari editor , salinan yang diedit akan menjadi crontab baru. Anda dapat mengontrol editor mana yang dimulai melalui variabelVISUAL
danEDITOR
lingkungan . Untuk daftar crontab Anda, jalankancrontab -l
.Jika Anda ingin memodifikasi crontab dalam sebuah skrip, setel
VISUAL
danEDITOR
ke path ke skrip atau ke snippet shell yang memodifikasi file yang disediakan. Editored
ada kemungkinan di sini, ataused -i
jika implementasi Andased
memiliki opsi ini. Jika Anda ingin menambahkan baris tanpa syarat, Anda dapat menggunakanecho … >>
. Berhati-hatilah dengan mengutip; jika sama sekali ragu, tulis skrip dan berikan nama skrip tersebut sebagaiEDITOR
.sumber
Ini agak terlambat, tetapi untuk orang lain mencari di sini. Ada cara yang lebih mudah daripada memanipulasi input / output stream dengan
VISUAL
danEDITOR
.Anda cukup menulis jadwal cron Anda dalam file, 1 pekerjaan per baris, dan menggunakan perintah
crontab [filename]
sehingga Anda dapatcat
pekerjaan Andafilename
sebagai bagian dari skrip Anda dan akhirnya memanggil crontab di akhir jika Anda mau.sebenarnya ini adalah penggunaan yang paling umum sebagai
man crontab
petunjuk dengan mendaftar terlebih dahulusumber
Jika Anda ingin menambahkan entri ke
crontab
dengan otomatisasi atau dari baris perintah, Anda dapat melakukannya (mengatur waktu yang Anda inginkan)Kemudian:
untuk memuat ulang crontab.
sumber
/var/spool/cron
. Cara yang lebih baik adalah melaluicrontab(1)
perintah.Cobalah dengan perintah ini:
lalu tambahkan pekerjaan cron Anda:
dalam file itu.
sumber
Saya ingin menyoroti cara saya menggambarkan di bawah ini meskipun telah disebutkan sebelumnya dalam komentar lain. Saya merasa sangat berguna ketika menambahkan entri ke file dan kemudian menambahkan file ke crontab. File itu akan berisi dua entri di bawah ini dan nama file akan menjadi
hello-world-crontab.txt
.0 09 * * * echo "Hello world!" >> /home/user/greeting.txt
0 09 * * * python /home/user/greeting.py
Kemudian, saya menjalankan perintah di bawah ini untuk menambahkan entri ini ke crontab.
$ crontab hello-world-crontab.txt
Langkah selanjutnya adalah memverifikasi entri ini telah ditambahkan.
$ crontab -l
Penjelasan singkat tentang apa yang dilakukan setiap entri:
/home/user/greeting.txt
setiap hari pukul 9 pagi.0 09 * * * echo "Hello world!" >> /home/user/greeting.txt
0 09 * * * python /home/user/greeting.py
sumber