私のシステム管理者は私のコンピュータにいくつかのクローンタスクを設定しました。正確にいつ予定されているのか知りたいです。このリストをどのように取得できますか?
答え1
ほとんどのCronの場合(例:ビクシー・クローン- Debian / Ubuntuのデフォルト値、Cronie - Fedoraのデフォルト値、Solaris Cron ...)
$ crontab -l
または他のユーザーを介して
# crontab -l -u juser
すべてのユーザーのcrontabを取得するには、すべてのユーザーを繰り返してこのコマンドを呼び出すことができます。
あるいは、スプールファイルを見つけることもできます。通常、/var/spool/cron
vcron などのディレクトリに保存されます。
/var/spool/cron/crontabs
すべてのユーザーのすべての構成を含むcrontab - rootユーザーに加えて、rootユーザーは次の場所にあるシステム全体のcrontabを介してジョブを構成できます。
/etc/crontab
そして親友.d
(Fedora / CentOSのデフォルト)システムcron操作用のスタイル設定ディレクトリもあります。
/etc/cron.d
(いつものように、この.d
ディレクトリは他のパッケージに属する構成アイテムのメンテナンスを簡素化します。)
便宜上、ほとんどのディストリビューションでは、リンク/保存スクリプトが定期的に実行されるディレクトリも提供しています。例:
/etc/cron.daily
/etc/cron.hourly
/etc/cron.monthly
/etc/cron.weekly
これらのスクリプトは通常、run-parts
システムcrontabのエントリを介して、または次のようにタイムリーに実行されます。ナクロン。
そしてシステム(例:Fedora、CentOS 7 ...)定期的なタスク実行は、次のように構成することもできます。タイマーユニット。有効なシステムタイマーは、次のように表示できます。
$ systemctl list-timers
非 root ユーザーは、タイマーが構成されているユーザー systemd インスタンスを実行できます。たとえば、Fedoraでは、現在ログインしている各ユーザーに対して、デフォルトでユーザーsystemdインスタンスが起動されます。以下で識別できます。
$ ps aux | grep 'systemd[ ]--user'
これらのユーザータイマーは次のようにリストできます。
$ systemctl --user list-timers
コマンドを実行するもう1つの方法は、list-timers
タイマーデバイスファイル(モード:)とそのシンボリックリンクの汎用システムおよびユーザーシステム構成ディレクトリを検索することです。*.timer
$ 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
(通常のサービスデバイスと同様に、正しいシステム設定ディレクトリにシンボリックリンクを作成してタイマーデバイスを有効にします。)
また見なさい:
答え2
Linuxシステムの設定方法に応じて、以下を確認できます。
/var/spool/cron/*
(ユーザー crontab)/etc/crontab
(システム全体のcrontab)
また、多くのディストリビューションには以下が含まれます。
/etc/cron.d/*
これらの構成は同じ構文を持ちます。/etc/crontab
/etc/cron.hourly
、、、、/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly
これは、ディレクトリ名に応じて、毎時間、毎日、毎週、または毎月実行される実行可能ファイルを含む単純なディレクトリです。
さらに、at jobs(OK /var/spool/at/*
)、anacron(/etc/anacrontab
および/var/spool/anacron/*
)、およびおそらく私が忘れた他の項目を持つことができます。
答え3
特定のユーザーのすべてのクローンを一覧表示します。
crontab -uユーザー名-l;
すべてのユーザーのすべてのcronを一覧表示
スーパーユーザーとして実行
#!/bin/bash
#List all cron jobs for all users
for user in `cat /etc/passwd | cut -d":" -f1`;
do
crontab -l -u $user;
done
答え4
すべてのcronジョブを一覧表示できます(私はmoreを使用して出力の位置を表示します)。
sudo sh -c 'more /etc/crontab /etc/cron.d/* /var/spool/cron/crontabs/* 2>/dev/null' | less
またはコメントなし:
sudo sh -c 'more /etc/crontab /etc/cron.d/* /var/spool/cron/crontabs/* 2>/dev/null' \
| grep "^\s*[^#]"
crontabには、cron.hourly、Daily、Weekly、およびMonthlyでスクリプトを実行するためのエントリがあります。以下をリストできます。
ls /etc/cron.hourly /etc/cron.daily /etc/cron.weekly /etc/cron.monthly