の自動実行機能(で、crontabの)スケジュールのLinux

の自動実行機能(で、crontabの)スケジュールのLinux

コンセプト

Linuxシステムでは、仕事の手配を進めるには二つの方法を提供します

  • 一度だけ実行で

  • crontabファイルは定期的に繰り返さ

これら2つのツールを適用することにより、私たちは、オペレーティング・システム・レベルで自動実行機能をタイミング達成することができます

実験環境

操作系统:CentOS Linux release 7.3.1611 (Core)

IP: 192.168.230.134

導入時

コマンドで、一度実行されます

この機能は、ATDツールを使用して、あなたがそのアクティブ状態を確認する必要があります

[root@localhost ~]# systemctl status atd
● atd.service - Job spooling tools
   Loaded: loaded (/usr/lib/systemd/system/atd.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2017-09-07 18:18:18 CST; 4h 2min ago
 Main PID: 921 (atd)
   CGroup: /system.slice/atd.service
           └─921 /usr/sbin/atd -f

Sep 07 18:18:18 localhost.localdomain systemd[1]: Started Job spooling tools.
Sep 07 18:18:18 localhost.localdomain systemd[1]: Starting Job spooling tools...

使用時

次のように一般的なコマンドは、

[root@localhost ~]# at -help
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

時刻の形式:

フォーマット 意味
HH:MM 1時01分 次の実行1時01分
HH:MM YYYY-MM-DD 午前1時00 2017年9月8日 特定の時間実行日を指定します
HH:MM [AM / PM] +番号[分/時間/日/週] 今+ 3日 ある時点の後いくつかの時間に置くために

例で

テストSHを作成し、権限を変更

[root@localhost ~]# vim test.sh

echo '豆姐威武'

[root@localhost ~]# chmod 755 test.sh [root@localhost ~]# ./test.sh 豆姐威武

現在の時刻を見ます

[root@localhost ~]# date
Thu Sep  7 23:19:51 CST 2017

コマンドで使用し、設定test.sh 23時21分には、Ctrlキー+ Dエンドでのコマンドの注意を実行します

[root@localhost ~]# at 23:21
at> /root/test.sh
at> <EOT>
job 5 at Thu Sep  7 23:21:00 2017

分待機した後、時間と設定時間を表示するための情報システムを受け取ります

You have new mail in /var/spool/mail/root
[root@localhost ~]# date
Thu Sep  7 23:21:04 CST 2017

システムが受信した情報を表示

[root@localhost ~]# cat /var/spool/mail/root

From root@localhost.localdomain  Thu Sep  7 23:21:00 2017 Return-Path: <root@localhost.localdomain> X-Original-To: root Delivered-To: root@localhost.localdomain Received: by localhost.localdomain (Postfix, from userid 0) id A139B243D2; Thu, 7 Sep 2017 23:21:00 +0800 (CST) Subject: Output from your job 5 To: root@localhost.localdomain Message-Id: <20170907152100.A139B243D2@localhost.localdomain> Date: Thu, 7 Sep 2017 23:21:00 +0800 (CST) From: root@localhost.localdomain (root) 豆姐威武

スクリプトのより実用的なコピー: 
オフ時間

[root@localhost ~]# at 18:00 2017-09-10
at> /bin/sync
at> /bin/sync
at> /sbin/shutdown -h now
at> <EOT> job 6 at Sun Sep 10 18:00:00 2017

これは、2017年9月7日18:00に自動的にシャットダウンします

でコマンドをキャンセル

コマンドで現在のを見る 
のコマンドを使用してATQ

[root@localhost ~]# atq
6   Sun Sep 10 18:00:00 2017 a root

コマンドをキャンセル 
コマンドatrmを使って

[root@localhost ~]# atrm 6

crontabのはじめに

crontabのコマンドは、構成に応じて、定期的に行います

彼の記録はでは/ var / log /のcronに保存されます

この機能は、crondサービス、その正常な状態を確保する必要性を必要とします

[root@localhost ~]# systemctl status crond
● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2017-09-07 18:18:18 CST; 5h 51min ago Main PID: 920 (crond) CGroup: /system.slice/crond.service └─920 /usr/sbin/crond -n Sep 07 18:18:18 localhost.localdomain systemd[1]: Started Command Scheduler. Sep 07 18:18:18 localhost.localdomain systemd[1]: Starting Command Scheduler... Sep 07 18:18:18 localhost.localdomain crond[920]: (CRON) INFO (RANDOM_DELAY will be ...) Sep 07 18:18:19 localhost.localdomain crond[920]: (CRON) INFO (running with inotify ...) Hint: Some lines were ellipsized, use -l to show in full. 

使用のcrontab

次のように一般的なコマンドは次のとおりです。

[root@localhost ~]# crontab -help
crontab: invalid option -- 'h'
crontab: usage error: unrecognized option
Usage:
 crontab [options] file
 crontab [options]
 crontab -n [hostname]

Options:
 -u <user>  define user
 -e         edit user's crontab
 -l         list user's crontab -r delete user's crontab -i prompt before deleting -n <host> set host in cluster to run users' crontabs -c get host in cluster to run users' crontabs -s selinux context -x <mask> enable debugging

時刻の形式:

*    *    *    *    *
-    -    -    -    -
|    |    |    |    |
|    |    |    |    |
|    |    |    |    +----- day of week (0 - 7) (Sunday=0 or 7) | | | +---------- month (1 - 12) | | +--------------- day of month (1 - 31) | +-------------------- hour (0 - 23) +------------------------- min (0 - 59)

crontabの例

または、実験を行う前に作成したtest.shを使用

crontabのコマンドを使用する新しい計画

現在の時刻を表示するには

[root@localhost ~]# date
Thu Sep  7 23:52:12 CST 2017

毎日のスクリプトの実行23:55に設定する計画を、作成/root/test.sh

[root@localhost ~]# crontab -e

55 23 * * * /root/test.sh

no crontab for root - using an empty one crontab: installing new crontab

現在のスケジュールを表示します。

[root@localhost ~]# crontab -l
55 23 * * * /root/test.sh

2分待ちます。

[root@localhost ~]# date
Thu Sep  7 23:55:07 CST 2017 You have new mail in /var/spool/mail/root

閲覧履歴:

[root@localhost ~]# cat /var/spool/mail/root 
From root@localhost.localdomain  Thu Sep  7 23:55:01 2017 Return-Path: <root@localhost.localdomain> X-Original-To: root Delivered-To: root@localhost.localdomain Received: by localhost.localdomain (Postfix, from userid 0) id 45D1028EB7; Thu, 7 Sep 2017 23:55:01 +0800 (CST) From: "(Cron Daemon)" <root@localhost.localdomain> To: root@localhost.localdomain Subject: Cron <root@localhost> /root/test.sh Content-Type: text/plain; charset=UTF-8 Auto-Submitted: auto-generated Precedence: bulk X-Cron-Env: <XDG_SESSION_ID=52> X-Cron-Env: <XDG_RUNTIME_DIR=/run/user/0> X-Cron-Env: <LANG=en_US.UTF-8> X-Cron-Env: <SHELL=/bin/sh> X-Cron-Env: <HOME=/root> X-Cron-Env: <PATH=/usr/bin:/bin> X-Cron-Env: <LOGNAME=root> X-Cron-Env: <USER=root> Message-Id: <20170907155501.45D1028EB7@localhost.localdomain> Date: Thu, 7 Sep 2017 23:55:01 +0800 (CST) 豆姐威武

crontabのプログラムを削除します

あなたは、1つのまたは2つのプログラムを削除する必要がある場合は、直接使用のcrontab -eは、編集、削除入力する 
あなたが計画を空にしたい場合は、-rができます

[root@localhost ~]# crontab -l
55 23 * * * /root/test.sh [root@localhost ~]# crontab -r [root@localhost ~]# crontab -l no crontab for root

crontabのサプリメント

あなたはまた、計画されたスクリプトを達成するためには/ etc / crontabファイルを編集することができます

[root@localhost ~]# vim /etc/crontab 

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=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

しかし、時にはこの方法では、crondサービスを再起動する必要があり、すぐには反映されません。

おすすめ

転載: www.cnblogs.com/telwanggs/p/11547398.html