At与Cron计划任务(tail -f ..... 动态检测)
两种计划任务的方式:一种是例行性的,就是每隔一定的周期要来办的事项;一种是突发性的,就是这次做完以后就没有的那一种
at :这个工作仅执行一次就从Linux 系统中的计划任务中取消(突发性)
开启服务:/etc/init.d/atd restart
补充 : service -- restart 工作原理就是寻找/etc/init.d目录下是否有 -- 文件,有则执行。
设置开机自动启动:chkconfig --level 35 atd on
at 使用限制
/etc/at.allow 中用户可以使用;/etc/deny中用户不可以使用;当两个档案都不存在时,只有root可以使用。
默认值(系统内账号都可以使用,一般只用/etc/deny)。
at now +1 minutes 正则(在1分钟后执行......)
at执行中输出输出到文本中,屏幕不显示。
at [-lmdvc] 工作号
-m 工作完成后以email通知使用者工作已经完成。
-l 列出目前系统上所有使用者的进程
-v 可以使用比较明显的时间格式列出at排程中的工作列表
-c 可以列出后面的该项工作实际命令内容
-d 取消一个安排在at排程中的工作
atq : 查询当下有多少计划任务
atrm:对任务进行删除
cron:这个工作将持续例行性的作下去。
/etc/cron.allow ; /etc/cron.deny (同at)
crontab [-u username] [-l | -e | -r]
-u 只有root 才能进行这个任务,亦既帮助其他使用者建立删除crontab;
-l 查阅 crontab 的工作内容
-r 移除 crontab 的工作内容
-e 编辑crontab 的工作内容
格式: * * * * * 需要执行的命令
crontab编辑的内容中5个*代表的内容
注 : 当周为0或7时,都代表星期天; 3,6表示3与6都适用;8-12 表示8到12 ;*/n表示每隔n单位
crontab不可执行问题:
1.如果脚本都设置正确,在本地尝试可以执行,但是加入到crontab中不能执行,可以在脚本加入环境配置命令
if[-f"$HOME/.bashrc"]
then
."$HOME/.bashrc"
fi
2.开启crond服务 /etc/init.d/crond restart
3 脚本加执行权限
4 路径问题
有的命令在shell中执行正常,但是在crontab执行却总是失败。有可能是因为crontab使用的sh未正确识别路径,比如:
以root身份登录shell后执行一个/root/test.sh,只要执行./test.sh就可以了。但是在crontab中,就会找不到这个脚本,需要写
完整/root/test.sh
系统的配置文件:/etc/crontab
/etc/crontab 书写格式
/etc/crontab这个文件里面支持两种下达命令的方式:
一种是直接下达命令
一种则是以目录来规划
* * * * * root run-parts 文件目录 (目录规划类)
01 * * * * s mail -s “testing” kiki < /home/dmtsai/test.txt
以s 这个使用者的身份,在每小时运行一次mail 命令。(命令型态)
修改完/etc/crontab之后,可能并不会马上运行,这个时候请重新启动crond这个服务。
资源分配不均的问题,取消不要的输出项目(略)
安全检查 周与日月不可同时并存