GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara mendapatkan daftar semua tugas cron terjadwal di mesin saya?

Bergantung pada bagaimana sistem linux Anda disiapkan, Anda dapat melihat di:

  • /var/spool/cron/* (crontab pengguna)
  • /etc/crontab (crontab seluruh sistem)

juga, banyak distro memiliki:

  • /etc/cron.d/* Konfigurasi ini memiliki sintaks yang sama dengan /etc/crontab

  • /etc/cron.hourly , /etc/cron.daily , /etc/cron.weekly , /etc/cron.monthly

Ini hanyalah direktori yang berisi executable yang dijalankan setiap jam, harian, mingguan atau bulanan, sesuai nama direktori mereka.

Selain itu, Anda dapat memiliki pekerjaan (periksa /var/spool/at/* ), anakron (/etc/anacrontab dan /var/spool/anacron/* ) dan mungkin yang lainnya saya lupa.


Dengan sebagian besar Cron (mis. Vixie-Cron - Debian/Ubuntu default, Cronie - Fedora default, Solaris Cron ...) Anda mendapatkan daftar tugas cron terjadwal untuk pengguna saat ini melalui:

$ crontab -l

atau untuk pengguna lain melalui

# crontab -l -u juser

Untuk mendapatkan crontab untuk semua pengguna, Anda dapat mengulang semua pengguna dan memanggil perintah ini.

Atau, Anda dapat mencari file spool. Biasanya, mereka disimpan di bawah /var/spool/cron , mis. untuk vcron mengikuti direktori

/var/spool/cron/crontabs

berisi semua crontab yang dikonfigurasi dari semua pengguna - kecuali pengguna root yang juga dapat mengonfigurasi pekerjaan melalui crontab seluruh sistem, yang terletak di

/etc/crontab

Dengan cronie (default pada Fedora/CentOS), ada .d direktori konfigurasi gaya untuk tugas cron sistem, juga:

/etc/cron.d

(Seperti biasa, .d direktori menyederhanakan pemeliharaan entri konfigurasi yang merupakan bagian dari paket yang berbeda.)

Untuk kenyamanan, sebagian besar distribusi juga menyediakan direktori tempat skrip yang ditautkan/disimpan dijalankan secara berkala, misalnya:

/etc/cron.daily
/etc/cron.hourly
/etc/cron.monthly
/etc/cron.weekly

Eksekusi tepat waktu dari skrip tersebut biasanya dikelola melalui run-parts entri di crontab sistem atau melalui anacron.

Dengan Systemd (mis. di Fedora, CentOS 7, ...) eksekusi pekerjaan berkala juga dapat dikonfigurasi melalui unit pengatur waktu. Timer sistem yang diaktifkan dapat ditampilkan melalui:

$ systemctl list-timers

Perhatikan bahwa pengguna di samping root mungkin juga menjalankan instance sistemd pengguna di mana penghitung waktu dikonfigurasi. Misalnya, di Fedora, secara default, instance sistemd pengguna dimulai untuk setiap pengguna yang saat ini masuk. Mereka dapat dikenali melalui:

$ ps aux | grep 'systemd[ ]--user'

Timer pengguna tersebut dapat dicantumkan melalui:

$ systemctl --user list-timers

Alternatif untuk menerbitkan list-timers perintah untuk mencari file unit pengatur waktu (pola:*.timer ) dan tautan simbolis ke mereka di direktori konfigurasi sistem dan sistem pengguna yang biasa:

$ find /usr/lib/systemd/ /etc/systemd -name '*.timer'
$ find /home '(' -path '/home/*/.local/share/systemd/user/*' \
              -o -path '/home/*/.config/systemd/*' ')' \
      -name '*.timer'  2> /dev/null

(Seperti unit layanan normal, unit pengatur waktu diaktifkan melalui pembuatan tautan simbolis di direktori konfigurasi systemd yang tepat.)

Lihat juga:

  • Artikel ArchWiki tentang Cron
  • Artikel ArchWiki tentang Systemd Timer

Untuk mencantumkan semua cron untuk pengguna tertentu.

crontab -u nama pengguna -l;

Untuk membuat daftar semua cron untuk semua pengguna

Jalankan sebagai pengguna super

#!/bin/bash
#List all cron jobs for all users
for user in `cat /etc/passwd | cut -d":" -f1`;
do 
crontab -l -u $user;
done

Linux
  1. Bagaimana Linux Menangani Beberapa Pemisah Jalur Berturut-turut (/home////username///file)?

  2. Bagaimana /etc/motd Diperbarui?

  3. Cara Menjadwalkan Pekerjaan Cron dengan Crontab

  1. Bagaimana cara mengatur tugas cron untuk menjalankan yang dapat dieksekusi setiap jam?

  2. Linux - Cara mendaftar semua pengguna

  3. Bagaimana saya bisa mendaftar semua vhosts di nginx

  1. Bagaimana saya bisa melihat hasil pekerjaan cron saya?

  2. Bagaimana cara mengatur logrotate untuk memutar log setiap jam?

  3. Bagaimana saya bisa membunuh semua pekerjaan yang dihentikan?