有时候我们需要系统在某某时间自动去做一件事情,windows里面我们可以做计划任务,而在linux和solaris上,可以使用cron达到相识的效果。
关于cron 写道
系统管理员通过cron.deny和cron.allow这两个文件来禁止或允许用户拥有自已的crontab文件
/usr/lib/cron/cron.allow表示谁能使用crontab命令。如果它是一个空文件表明没有一个用户能安排作业。如果这个文件不存在,而有另外一个文件/usr/lib/cron/cron.deny,则只有不包括在这个文件中的用户才可以使用crontab命令。如果它是一个空文件表明任何用户都可安排作业。两个文件同时存在时cron.allow优先,如果都不存在,只有超级用户可以安排作业。
/usr/lib/cron/cron.allow表示谁能使用crontab命令。如果它是一个空文件表明没有一个用户能安排作业。如果这个文件不存在,而有另外一个文件/usr/lib/cron/cron.deny,则只有不包括在这个文件中的用户才可以使用crontab命令。如果它是一个空文件表明任何用户都可安排作业。两个文件同时存在时cron.allow优先,如果都不存在,只有超级用户可以安排作业。
crontab格式 写道
crontab文件中各个域的意义和格式
第一列 分钟1~59
第二列 小时1~23(0表示子夜)
第三列 日1~31
第4列 月1~12
第5列 星期0~6(0表示星期天)
第6列 要运行的命令
crontab的格式:
分 时 日 月 星期 要运行的命令
第一列 分钟1~59
第二列 小时1~23(0表示子夜)
第三列 日1~31
第4列 月1~12
第5列 星期0~6(0表示星期天)
第6列 要运行的命令
crontab的格式:
分 时 日 月 星期 要运行的命令
例如,表示每月1、10、22日的4:45运行/apps/bin目录下的backup.sh
45 4 1,10,22 * * /apps/bin/backup.sh
下面是一个完整的例子编写过程。例子的结果是在系统上每分钟都自动将当前时间写入到一个叫cronLog.txt的文件中
1.写一个用来自动运行的sh文件 hello.sh
- #!/bin/bash
- date >> /export/home/weichao/cronLog.txt
(* 注: ">>" 是追加在文件末尾, ">"是覆盖原文件)
2.在控制台中修改文件的执行权限
输入命令:
- bash$: chmod +x hello.sh
3.在控制台中将hello.sh的任务添加到crontab中
输入命令:
- bash$: crontab -e
在打开的crontab中添加
- * * * * * /export/home/weichao/hello.sh
代表每天每过1分钟都调用一次hello.sh。也可以写成: 1~59 * * * * /export/home/weichao/hello.sh
4. OK,现在每经过1分钟控制台都会发一个mail提醒你有消息。这时候你可以打开/export/home/weichao/cronLog.txt
查看,可以发现每过1分钟就会添加一条信息进去。