Saya pernah mendengar crontab adalah pilihan yang baik, tetapi bagaimana cara saya menulis baris dan di mana saya meletakkannya di server?
144
Berikut tutorial yang bagus tentang apa itu crontab dan bagaimana menggunakannya di Ubuntu. Baris crontab Anda akan terlihat seperti ini:
00 00 * * * ruby path/to/your/script.rb
( 00 00
menunjukkan tengah malam - 0 menit dan 0 jam - dan *
artinya setiap hari setiap bulan.)
Sintaksis: mm hh dd mt wd perintah mm menit 0-59 jam 0-23 hari di bulan 1-31 mt bulan 1-12 hari dalam seminggu 0-7 (Minggu = 0 atau 7) perintah: apa yang ingin Anda jalankan semua nilai numerik dapat diganti dengan * yang berarti semua
/etc/crontab
(di Ubuntu), tetapi ketika Anda menjalankancrontab -e
Anda sedang mengedit crontab khusus pengguna, yang tidak mengizinkan kolom ini. Ubuntu IIRC mencegah keluar/etc/crontab
secara manual karena mungkin ditimpa. Lihat di sini: stackoverflow.com/questions/8475694/…sudo crotab -u root -e
dari halaman manual
Adalah baik untuk mencatat "nama panggilan" khusus yang dapat digunakan (didokumentasikan di halaman manual), khususnya "@reboot" yang tidak memiliki alternatif waktu dan tanggal.
Anda juga dapat menggunakan trik ini untuk menjalankan tugas cron Anda beberapa kali per menit.
Untuk menambahkan pekerjaan cron, Anda dapat melakukan salah satu dari tiga hal berikut:
tambahkan perintah ke crontab pengguna, seperti yang ditunjukkan di atas (dan dari crontab, bagian 5, halaman manual).
crontab -e -u <username>
crontab -e
EDITOR
variabel lingkunganenv EDITOR=nano crontab -e -u <username>
export EDITOR=vim
crontab -e
chmod a+x <file>
buat skrip / program sebagai tugas cron, dan tambahkan ke
/etc/cron.*ly
direktori anacron sistemchmod a+x /etc/cron.daily/script_runs_daily.sh
- membuatnya dapat dieksekusiman anacron
chmod a+x <file>
/etc/crontab
atau/etc/anacrontab
untuk dijalankan pada waktu yang ditentukan/etc/anacrontab
, dan mendefinisikan cron./etc/cron.d/0hourly
Atau, Anda dapat membuat crontables sistem di
/etc/cron.d
./etc/cron.d
tidak perlu dapat dieksekusi.someuser
, dan penggunaan/bin/bash
sebagai shell dipaksa.sumber
Terkadang Anda perlu menentukan PATH dan GEM_PATH menggunakan crontab dengan rvm.
Seperti ini:
sumber
Panduan cepat untuk mengatur pekerjaan cron
Buat file teks baru, contoh: mycronjobs.txt
Untuk setiap pekerjaan harian (00:00, 03:45), simpan baris jadwal di mycronjobs.txt
Kirim pekerjaan ke cron (setiap kali Anda menjalankan ini, cron menghapus apa yang telah disimpan dan memperbarui dengan informasi baru di mycronjobs.txt )
Informasi Berguna Ekstra
Lihat pekerjaan cron saat ini
Hapus semua pekerjaan cron
sumber
Anda dapat menjalankan skrip shell dengan dua cara, baik menggunakan cron job atau dengan menulis skrip shell
Mari kita asumsikan nama skrip Anda adalah "yourscript.sh"
Pertama periksa izin pengguna skrip. gunakan perintah di bawah ini untuk memeriksa izin pengguna skrip
ll script.sh
Jika skrip di root, gunakan perintah di bawah ini
sudo crontab -e
Kedua jika skrip menampung pengguna "ubuntu", maka gunakan perintah di bawah ini
crontab -e
Tambahkan baris berikut di crontab Anda: -
55 23 * * * /path/to/yourscript.sh
Cara lain untuk melakukan ini adalah dengan menulis skrip dan menjalankannya di backgroud
Ini adalah skrip di mana Anda harus meletakkan nama skrip Anda (misalnya: - youscript.sh) yang akan berjalan pada 23:55 setiap hari
#!/bin/bash while true do /home/modassir/yourscript.sh sleep 1d done
simpan dalam file (beri nama "every-day.sh")
sleep 1d - artinya menunggu selama satu hari dan kemudian berjalan lagi.
sekarang beri izin untuk skrip Anda. gunakan perintah di bawah ini: -
chmod + x every-day.sh
sekarang, jalankan skrip shell ini di latar belakang dengan menggunakan "nohup". Ini akan terus mengeksekusi skrip bahkan setelah Anda keluar dari sesi Anda.
gunakan perintah di bawah ini untuk menjalankan skrip.
nohup ./every-day.sh &
Catatan: - untuk menjalankan "yourscript.sh" pukul 23.55 setiap hari, Anda harus menjalankan skrip "every-day.sh" tepat pukul 23.55 sore.
sumber
Masukkan kalimat ini dalam file crontab: 0 0 * * * / usr / local / bin / python /opt/ByAccount.py> /var/log/cron.log 2> & 1
sumber