cron は、手動介入なしでジョブを実行できる Linux スケジュール実行ツールです。
1. crontabについて
Ubuntuサーバーではデフォルトでcronがインストールされ起動されます。 /etc/crontab ファイルを通じて、次のコンテンツを確認できます:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# /etc/crontab: system-wide crontab# Unlike any other crontab you don’t have to run the `crontab’# command to install the new version when you edit this file# and files in /etc/cron.d. These files also have username fields,# that none of the other crontabs do. SHELL=/bin/shPATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow user command17 * * * * root cd / && run-parts –report /etc/cron.hourly25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts –report /etc/cron.daily )47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts –report /etc/cron.weekly )52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts –report /etc/cron.monthly )# |
——————————————————————————————————————————–
電話でヌントゥrun-parts コマンドを使用して、4 つのディレクトリ内のすべてのスクリプトを定期的に実行します。
1) /etc/cron.hourly、ディレクトリ内のスクリプトは 1 時間ごとに 17 分に実行されます。
2) /etc/cron.daily、ディレクトリ内のスクリプトは 1 日に 1 回実行されます。 、毎日 6:25 に実行されます
3) /etc/cron.weekly、ディレクトリ内のスクリプトは週に 1 回実行され、毎週 7 日の 6:47 に実行されます
4)/ など/cron.mouthly、ディレクトリ内のスクリプトは毎月 1 日の 6:52 に実行されます
もちろん、上記の時間はシステムのデフォルト時間であり、必要に応じて変更できます。
2. cron サービスの開始と停止
Ubuntu 9.10 では、cron がデフォルトでインストールされ、開始されます。 ubuntu での cron の開始、停止、再起動はすべて、/etc/init.d/ 内のスクリプトを呼び出すことで行われます。コマンドは次のとおりです:
1) /sbin/service crond start // サービスを開始します
2) /sbin/service crond stop // サービスを終了します
3) /sbin/service crond restart // サービスを再起動します
4 ) /sbin/service crond reload // 設定をリロードします
次のコマンドで cron が実行されているかどうかを確認できます (実行されている場合は、プロセス ID が返されます):
# pgrep cron
crontab3.コマンドは、cron バックグラウンド プロセスの駆動に使用されるテーブルをインストール、削除、またはリストするために使用されます。言い換えれば、ユーザーは実行する必要がある一連のコマンドを crontab ファイルに入れて実行することができ、各ユーザーは独自の crontab ファイルを持つことができます。このコマンドのパラメーターと説明は次のとおりです:
1) crontab -u // 特定のユーザーの cron サービスを設定します2) crontab -l // 特定のユーザーの cron サービスの詳細を一覧表示します
3) crontab -r // 各ユーザーの cron サービスを削除します
4) crontab -e // 特定のユーザーの cron サービスを編集します
意味 | 例 | |||||||||||||||||||||||||||||||||||
ユーザーの Crontab ファイル 内容 tCrontabl -L | -I | |||||||||||||||||||||||||||||||||||
Crontabl -Ri | -R | |||||||||||||||||||||||||||||||||||
Crontabl -R - R - R -R | -e | |||||||||||||||||||||||||||||||||||
crontab -e |
/etc/crontab文件语法如下:
举例如下:
4. 新增 cron 任务 推荐使用crontab -e命令添加自定义的任务(编辑的是/var/spool/cron下对应用户的cron文件,在/var/spool/cron下的crontab文件 不可以直接创建或者直接修改,crontab文件是通过crontab命令得到的)。 # crontab -e 1)直接执行命令行 2)shell 文件
———————————————————————————————————————– 3)php 文件
5. 其他 /var/spool/cron/ 该目录下存放所有用户的cron服务 6. 一个超级用户的 crontab
7. 例子 ●30 5 * * * root /sbin/init 6 这样就将系统配置为了每天早上5点30自动重新启动。 ● 50 7 * * * /sbin/service sshd start 意思是每天7:50开启ssh服务 ● 50 22 * * * /sbin/service sshd stop 意思是每天22:50关闭ssh服务 ● 0 0 1,15 * * fsck /home 每月1号和15号检查/home 磁盘 ● 1 * * * * /home/bruce/backup 每小时的第一分执行 /home/bruce/backup这个文件 ● 00 03 * * 1-5 find /home “*.xxx” -mtime +4 -exec rm {} /; 每周一至周五3点钟,在目录/home中,查找文件名为*.xxx的文件,并删除4天前的文件。
这条语句将在每天的凌晨3点12分(03:12)运行 tar czf /usr/local/backups/daily/etc.tar.gz /etc 命令。>> /dev/null 2>&1 表示把所有标准输出发送到 /dev/null(linux的回收站),把标准错误输出(2)发送到和标准输出(1)同样的地方(即 /dev/null)。运行这行命令将不会产生任何输出。 这条语句可以变得稍微复杂一点:
它将在6月13日周一的15:30运行 tar czf /usr/local/backups/daily/etc.tar.gz /etc 命令。 以下语句可以达到同样的效果:
如果你想以用户joey的身份每小时的第15分钟运行某个程序,可以使用:
其中的星号(*)是通配符,表示cron将忽略这个字段。 如果你想每两小时就运行某个程序,可以在小时字段里使用 */2。它将会在2点,4点,6点……22点,24点运行。具体语句如下:
cron语句中还可以使用逗号(,)来指定多个时间。例如你想在每小时的15分和30分运行某个程序,可以在分钟字段使用 15,30:
如果你想在每月的第一周(即1号到7号)每天的指定时间运行某个程序,可以在日期字段使用 1-7:
这条语句将在每月的第1-7日每两小时的15分和30分(02:15,02:30……22: 15,22:30等)运行 /usr/bin/somecommand 命令。 如果你想在每天的16:18执行一个脚本集合,可以把所有要执行的脚本放到一个目录中(如 /home/username/cron),可以使用:
如果你想保存某个程序的输出结果, 可以把 >> /dev/null 2>&1 替换为 >> /home/user/somecommand.log 2>&1 。 转自:http://blog.enjoydiy.com/2011/10/415.html 相关推荐: |
以上がUbuntu cron スケジュールされたタスクの実行の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。