簡単な紹介
の/ etc / crtontab
/ var /スプール/ cronの
ファイル/etc/crontab.allowと/etc/crontab.denyファイル
文法
crontabの[-e [ユーザー名] | -l [ユーザー名] | -r [ユーザー名] | -v [ユーザー名] |ファイル]
各パラメータ説明
- -e [ユーザー名]:タイムテーブルを設定するために、テキストエディタの実装は、デフォルトのテキストエディタがviのです(あなたが他のユーザーを指定することができますが、権限を持っている必要があります)
- -r [ユーザー名]:現在のタイムテーブルを削除
- -l [ユーザー名]:現在のタイムテーブルを一覧表示します
- -v [ユーザー名]:ユーザーのcronジョブの状態を一覧表示します
スケジュールされたタスクを作成します。
crontabのテキストを入力-e(VI )状態編集 * * * * *パスコマンド // 作業を開始するとき、最初の5つのフィールドを指定する整数値を取ることができ、6番目のフィールドは、文字列、crontabファイルを含むすなわち、コマンド・フィールドは、ありますコマンドの実行をスケジュールします。タブとフィールド間を分割するスペース。
コマンドをスケジュールルール
フィールド名 | 説明 | レンジ |
分 | 毎時間の最初の数分 | 0-59 |
時間 | 毎日実行の最初の数時間 | 0-23 |
日付 | 実行するには、月の最初の数日間 | 1-31 |
月間カレンダー | 最初の数ヶ月の実行の毎年 | 1-12 |
週 | 実行の毎週日 | 0-6 |
コマンド名 | コマンドとパラメータは、実行されます |
いくつかの一般的に使用される特殊記号のcrontabのコマンド
シンボル | 説明 |
* | 任意の瞬間を表します |
、 | すなわち、セグメントを示し |
- | このような第二段落として、セグメントを表し:1-5、それは1〜5時00であります |
/ N | Nは、1時間ごとにコマンドを実行することを意味し、* / 1、このような第二段落のように、各ユニットの実行時間を表します。また、1-23 / 1のように記述することができます。 |
定期的なタスクを見ます
スケジュールされたタスクを削除するには
使用例
* * * * *コマンド
3、15 * * * *コマンド
3、15 8 - 11 * * *コマンド
3、15 8 - 11 * / 2 * *コマンド
3、15 8 - 11 * 1コマンド
30 21 * * * /etc/init.d/smbの再起動
45 4 1、10、22 * /etc/init.d/smb再始動
10 1 * 6、0 /etc/init.d/smb再始動
0、30 18 - 23 * * * /etc/init.d/smbの再起動
0 23 * * 6 /etc/init.d/smbの再起動
* * / 1 * * * /etc/init.d/smbの再起動
* 23 - 7 / 1 * * * /etc/init.d/smbの再起動
0 11 4 *月-結婚/etc/init.d/smbの再起動
0 4 1 1月*の/etc/init.d/smbの再起動
01 * * * *ルートRUN-部品の/ etc / cron.hourly #のRUNは、このパラメータが削除された場合、この引数を-parts、その後あなたの代わりに、ディレクトリ名を、実行するスクリプトの名前を書くことができます
59 23 * * * /ホーム/ suifeng /スクリプト/テスト。SH > /home/suifeng/log.txt&
59 23 * * * /ホーム/ suifeng /スクリプト/テスト。SH 1 > /home/suifeng/log.txt&
59 23 * * * /ホーム/ suifeng /スクリプト/テスト。SH 1 > /home/suifeng/log.txt&
59 23 * * * /ホーム/ suifeng /スクリプト/テスト。SH 1 > /home/suifeng/log.txt 2 >&1&
説明書
注意を払います
crondサービス
/ sbinに/ サービスを開始crond / sbinに/ サービスcrond停止 / sbinに/ サービスの再起動crond / sbinに/サービスcrondのリロードを
サービスcrondの状態
動作例
1.まず、スクリプトをシェルに新しいニーズの実装のタイミング、および以下のように、ここで私は、現在の時間date.shを出力するスクリプトを作成し、容易にするために、問題を説明する、非常に単純に、読み込みは、コマンドラインとデートして、日付に出力をリダイレクトすることです.TXTのテキスト:
2.次に、date.shタイミングタスクにスクリプトを追加する直接、通常のスケジュールされたタスクの実行かどうかを確認するために、例えば、毎分スクリプトを実行する場所を最初、次のように、行に追加するには、コマンド「-eをのcrontab」を実行、編集 "することです* / 1 * * * * /root/date.sh次のように「、ライン上に保存します。
これらの6つのフィールドの意味に関しては、公式文書は、コマンド分、時間、日、月、週、および実行を表す、以下に詳細に記載されている、オンラインプレゼンテーション資料にも興味を持って、非常に豊富で、あなたが検索できます。
3.最后,我们再查看一下输出文件date.txt和crontab日志,如下,说明添加的定时任务已经正常运行,这里再替换成你每天定时执行的时间,只需要修改第一、二个字段就行,例如,每天10:30执行,则编辑“30 10 * * * /root/date.sh”保存就行:
至此,我们就完成了每天定时执行shell脚本。总的来说,整个过程非常简单,只要你有一定的Linux基础,熟悉一下crontab命令,很快就能掌握的,网上也有相关资料和教程,介绍的非常详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。
个人经验总结
简介
/etc/crtontab
/var/spool/cron
/etc/crontab.deny文件与/etc/crontab.allow文件
语法
crontab [-e [UserName]|-l [UserName]|-r [UserName]|-v [UserName]|File ]
各个参数说明
- -e [UserName]: 执行文字编辑器来设定时程表,内定的文字编辑器是 vi(可以指定别的用户,但是必须拥有权限)
- -r [UserName]: 删除目前的时程表
- -l [UserName]: 列出目前的时程表
- -v [UserName]:列出用户cron作业的状态
创建定时任务
crontab -e进入文本(vi)编辑状态 * * * * * command path // 前五个字段可以取整数值,指定何时开始工作,第六个域是字符串,即命令字段,其中包括了crontab调度执行的命令。 各个字段之间用spaces和tabs分割。
调度命令的规则
字段名称 | 说明 | 取值范围 |
分钟 | 每小时的第几分钟执行 | 0-59 |
小时 | 每日的第几个小时执行 | 0-23 |
日期 | 每月的第几天执行 | 1-31 |
月历 | 每年的第几月执行 | 1-12 |
星期 | 每周的第几天执行 | 0-6 |
命令名称 | 欲执行的命令及参数 |
crontab命令中的一些常用特殊符号
符号 | 说明 |
* | 表示任何时刻 |
, | 表示分割 |
- | 表示一个段,如第二段里: 1-5,就表示1到5点 |
/n | 表示每个n的单位执行一次,如第二段里,*/1, 就表示每隔1个小时执行一次命令。也可以写成1-23/1. |
查看定时任务
删除定时任务
使用示例
* * * * * command
3,15 * * * * command
3,15 8-11 * * * command
3,15 8-11 */2 * * command
3,15 8-11 * * 1 command
30 21 * * * /etc/init.d/smb restart
45 4 1,10,22 * * /etc/init.d/smb restart
10 1 * * 6,0 /etc/init.d/smb restart
0,30 18-23 * * * /etc/init.d/smb restart
0 23 * * 6 /etc/init.d/smb restart
* */1 * * * /etc/init.d/smb restart
* 23-7/1 * * * /etc/init.d/smb restart
0 11 4 * mon-wed /etc/init.d/smb restart
0 4 1 jan * /etc/init.d/smb restart
01 * * * * root run-parts /etc/cron.hourly # run-parts这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是目录名
59 23 * * * /home/suifeng/scripts/test.sh >/home/suifeng/log.txt &
59 23 * * * /home/suifeng/scripts/test.sh 1>/home/suifeng/log.txt &
59 23 * * * /home/suifeng/scripts/test.sh 1>/home/suifeng/log.txt &
59 23 * * * /home/suifeng/scripts/test.sh 1>/home/suifeng/log.txt 2>&1 &
相关说明
注意
crond服务
/sbin/service crond start /sbin/service crond stop /sbin/service crond restart /sbin/service crond reload
service crond status
操作实例
1.首先,新建需要定时执行的shell脚本,这里我为了方便说明问题,新建了一个打印当前时间的脚本date.sh,内容如下,非常简单,就是一行date命令,然后将输出重定向到一个date.txt文本中:
2.接着就是将这个date.sh脚本添加到定时任务中,直接运行“crontab -e”命令添加就行,如下,这里先以每分钟执行一次脚本为例,看定时任务能否正常执行,编辑“*/1 * * * * /root/date.sh”保存就行,如下:
至于这6个字段的含义,官方文档有详细说明,如下,分别代表分、时、天、月、星期和执行的命令,网上介绍资料也非常丰富,感兴趣的话,可以搜索一下:
3.最后,我们再查看一下输出文件date.txt和crontab日志,如下,说明添加的定时任务已经正常运行,这里再替换成你每天定时执行的时间,只需要修改第一、二个字段就行,例如,每天10:30执行,则编辑“30 10 * * * /root/date.sh”保存就行:
至此,我们就完成了每天定时执行shell脚本。总的来说,整个过程非常简单,只要你有一定的Linux基础,熟悉一下crontab命令,很快就能掌握的,网上也有相关资料和教程,介绍的非常详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。