Linux_day05_02_スケジュールされたタスク

スケジュールされたタスク

Linuxのスケジュールされたタスク
  • 将来の特定の時点でタスクを実行します:at、batch
  • タスクを定期的に実行します:crond
  1. コマンドで

インストールする必要があります:yum -y install at

[root@localhost ~]# at --help
at: invalid option -- '-'
Usage: at [-V] [-q x] [-f file] [-mMlbv] timespec ...
       at [-V] [-q x] [-f file] [-mMlbv] -t time
       at -c job ...
       atq [-V] [-q x]
       at [ -rd ] job ...
       atrm [-V] job ...
       batch
  • 指示:パラメータ時に
  • パラメータ
    • -m:指定したタスクが完了すると、標準出力がなくてもメールがユーザーに送信されます
    • -I:atqのエイリアス
    • -d:atrmのエイリアス
    • -v:タスクが実行される時間を表示します
    • -c:タスクの内容を標準出力に出力します
    • -V:バージョン情報を表示します
    • -q:指定されたキューを使用します
    • -f:標準入力から読み取る代わりに、指定されたファイルからタスクを読み取ります
    • -t:実行するタスクを時間パラメーターの形式で送信します
  • 時間
    • HH :: MM [YYYY-MM-DD]
    • 月、真夜中、ティータイム
    • 明日
    • 今+ num {分、時間、日、週}
  • atq:スケジュールされたタスクを表示する
  • atrm 2:タスクを削除する

事前にatd.serviceを開始します:systemctl start atd

  1. バッチコマンド

ここで指定されたタスクを実行するために、システムにアイドル時間を自動的に選択させます

  • 使用上の注意:バッチパラメータ時間
  • パラメータ
    • -f:特定の指示を含むタスクファイルを指定します
    • -q:新しいタスクのキュー名を指定します
    • -m:タスクの実行後にユーザーにメールを送信します
batch 
at> echo 1234
at> <EOT>
job 5 at Sun Apr 28 08:49:00 2013
Linuxシステムタスク

Linuxシステムは、タスクをスケジュールするためにcrondサービスによって制御されます。Linuxには非常に多くのスケジュールされたタスクがあるため、このサービスはデフォルトで開始されます。さらに、ユーザーはスケジュールされたタスクを設定することもできるため、ユーザーがスケジュールされたタスクを制御するためのcrontabコマンドが提供されています。

cat /etc/crontab 

SHELL=/bin/bash	指定shell
PATH=/sbin:/bin:/usr/sbin:/usr/bin	系统执行命令的路径
MAILTO=root		任务执行通过邮件发送给root用户

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
0-30 */2 3,6,9 1 root /usr/bin/echo hello
  分 时 日 月 周 用户名 任务命令

時間

  • 特定の値:特定の時点で有効な範囲内の値
  • *:特定の時点で有効な値の範囲内にあるすべての値、つまり「すべて...」
  • 離散値:コンマを介した離散値1,3,6,9
  • 連続値:マイナス記号を使用-連続値0〜30にすることができます
  • 定義ステップ:* / 5:「5ごと...」を意味します

crontabコマンド

  • -l:すべてのタスクを一覧表示します
  • -e:タスクの編集
  • -r:すべてのタスクを削除します
  • -i:インタラクティブ
  • -u:ユーザーを指定します

練習問題

  1. 18:00にシステムをシャットダウンし、タスク情報を表示するように1回限りのスケジュールされたタスクを設定します
at 18:00
at> poweroff
at> <EOT>

atq # 查看任务信息
  1. / etc / passwd / etc / shadow / etc / group / etc / gshadowを毎晩24:00にfile.tar.gzにパックして圧縮します
crontab -e -uroot 0 0 * * * tar -czvf file.tar.gz /etc/passwd /etc/shadow /etc/group /etc/gshadow
  1. 毎週月曜日に5分ごとにディスク使用量を一覧表示します
crontab -e -uroot */5 * * * 1 df -Th
  1. 毎日8:30にインターネット時刻同期サーバーpool.ntp.orgと時刻を同期します
crontab -e -uroot 30 8 * * * ntpdate pool.ntp.org
  1. crontabコマンドを使用してrootのスケジュールされたタスクを表示し、ファイル表示ツールを使用して/ var / pool / cronの下に対応するファイルの内容を一覧表示します
crontab -l -uroot

cat /var/spool/cron/root

おすすめ

転載: blog.csdn.net/qq_44924544/article/details/108903885