9.5 at crontabコマンド学習


一、宿題(練習)内容:
1、Linuxシステム上の任務計画(at、crontab)の詳細な使用方法を総括する.
atコマンド:
将来の時間に実行されるジョブをロードします.
ジョブキューの使用をサポート:デフォルトはaキューです.
        Ctrl+d
        at [option]... TIME
TIME:(1)絶対時間HH:MM,MMDD[CC]YY,MM/DD/[CC]YY,DD.[CC]YY or[CC]YY-MM-DD tomorrow(2)相対時間now+#UNIT minute,hour,day,Week(3)ファジイ時間midnight noon teatime
共通オプション:-q QUEUE:atジョブキュー;-f/PATH/FROM/SMEFILE:指定したファイルから実行するジョブを読み込む;-l:ジョブキュー内の実行待ちジョブのリストを表示します.atqコマンドの使用に相当する.            -c AT_JOB_NUM:実行するジョブの内容を表示します.-d:指定されたジョブを削除します.atrmに相当する
-m指定されたタスクが完了すると、標準出力がなくてもユーザにメールが送信されます.
-t<時間パラメータ>実行するタスクを時間パラメータとしてコミット
atは、かなり複雑な指定時間を使用する方法を可能にする.彼は当日のhh:mm(時間:分)式の時間指定を受け入れることができる.この時間が過ぎたら翌日に実行する.もちろんmidnight(深夜)、noon(昼)、teatimeも使用できる(お茶を飲む時間は、一般的に午後4時)など曖昧な言葉で時間を指定する.ユーザーは、時間の後にAM(午前)またはPM(午後)を加えて、午前か午後かを説明する12時間計時制を採用することもできる.コマンド実行の具体的な日付を指定することもでき、monthday(月)またはmm/dd/yy(月/日/年)またはdd.mm.yy(日.月.年).指定された日付は指定された時刻の後に続く必要があります.上で説明したのはすべて絶対計時法ですが、実際には相対計時法も使用できます.これは間もなく実行されるコマンドを手配するのに役立ちます.指定形式は:now+count time-units、nowは現在の時刻、time-unitsは時間単位、ここでminutes(分)、hours(時間)、days(日)、weeks(日).countは時間の数、何日、何時間などです.さらに、today(今日)、tomorrow(明日)を直接使用してコマンドを完了する時間を指定する方法もあります.例:
1).22:00に再起動
[root@localhost~]#at 22:00 at>reboot at>#ctrl+Dでタスクjob 2 at Tue Sep 8 22:00:00:2015
2).タスクを削除
[root@localhost ~]# atq 1    Tue Sep  8 22:00:00 2015 a root 2    Tue Sep  8 22:00:00 2015 a root [root@localhost ~]# atrm 1 [root@localhost ~]# atq 2    Tue Sep  8 22:00:00 2015 a root
 
crontab:サイクルタスク計画デーモン:crond
周期的なタスクには2種類ある:(1)システムcronタスク;デフォルトの実行ユーザーIDがないため、実行者を追加で指定する必要があります.               /etc/crontab
vimコマンド
                    # 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   
7フィールド:最初の5フィールド:時点user-name:タスクを実行するユーザーcommand to be executed:タスクを実行する
(2)ユーザcronタスク:あるユーザによってコミットされ、デフォルトではコミット者として実行されるため、実行者を追加指定する必要はありません.               /var/spool/cron/USERNAME
vimコマンド;crontabコマンドを推奨しません:推奨
                    # 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                     # |  |  |  |  |                     # *  *  *  *  *  command to be executed   
5時間:分:有効値範囲0-59;時間:0-23日:1-31月:1-12週:0-7
注意:何月何日と何曜日は、同時に使用することをお勧めしません.
例:6***
時間表現:
*:対応する時点有効値範囲内の各時点;-:1つの特定の連続時間範囲、3-7、:1つの離散的な時点、3,5,7/#:有効時間範囲内の各時間;周波数を指定します.                                1-30/4, */4
                        5 */3 * * */bin/echo "howdy"
                        5 7 * * 1-5/bin/echo "howdy"
crontabコマンド:crontab[-u user][-l|-r|-e]-u user:自分のcronタスクを管理するのではなく、指定したターゲットユーザーのcronタスクです.rootのみが他のユーザーのcronタスクを管理する権限を持っている.デフォルトでは、独自の管理を行います.
-l:list、タスクをリストします.-r:remove、すべてのタスクを削除します.-e:edit、編集、現在のshellセッションのデフォルトエディタを開いてcronタスクテーブルを編集します.
-r:タスクをクリア
batch:システムが自分でリソースが空いているときに指定したタスクを実行することを選択します.
2、毎週1~土曜日の午前3時20分、cpコマンドを実行して/etc/ディレクトリをアーカイブして保存し、保存場所は/backups/etc-YYYYY-MM-DDである.
     20 3 * * 1-6 usr/bin/cp -r/etc//backups/etc-'date +%F'
3、毎週日午前2時30分、cpコマンドを実行して/etc/fstabファイルをバックアップし、保存場所は/backup/fstab-YYYYY-MM-DD-hh-mm-ssである.
  30 2 * * 0  /usr/bin/cp -r /etc/fstab /backup/fstab-`date +%F-%H-%M-%S`

4、毎晩12時、/proc/meminfoファイルのSまたはMで始まるすべての行を取得し、/statistics/meminfoに追加する.txtファイルに、毎日のメッセージの前に、類似=================区切り線を付けます.
0 0 * * * /bin/echo "===============" >> /statistics/meminfo.txt ; /bin/cat /proc/meminfo | egrep "^S|^M" >> /statistics/meminfo.txt