标签:信息 写入 展示 spool 开启 命令参数 带来 打印 --
crontab:定时任务的守护进程,精确到分,设计秒的我们一般写脚本 -->相当于闹钟
日志文件: ll /var/log/cron*
编辑文件: vim /etc/crontab
进程:ps -ef | grep crond ==> /etc/init.d/crond restart
作用:定时备份,实时备份
最好用2为阿拉伯数字显示
周和日最好不要同时用
定时任务要加注解
可以定向到日志文件或者空文件
定时任务一定是绝对路径,且目录必须存在才能出结果
crontab 服务一定要开启运行
1.增加执行任务的频率调试
2.调整系统时间调试任务,提前5分钟 -->不用于生产环境
3.通过脚本日志输出调试定时 任务
4.注意一些任务命令带来的问题 -->确保命令的正确性
1.环境变量问题,例如crontab不能识别Java的环境变量
crontab执行shell时,只能识别为数不多的环境变量,普通的环境变量是无法识别的,所以在编写shell时,最好使用export重新声明变量,确保脚本执行。
2.命令的执行最好用脚本
3.脚本权限加/bin/sh,规范路径/server/scripts
4.时间变量用反斜线转义,最好用脚本
5.定时任务添加注释
6.>/dev/null 2>&1 ==>&>/dev/null,别随意打印日志文件
7.定时任务里面的程序脚本尽量用全路径
8.避免不必要的程序以及命令输出
9.定时任务之前添加注释
10.打包到文件目录的上一级
定时任务要加必要的注释(什么人,什么时间,是谁,作了什么事情)
定时任务或者程序最好写到脚本里面去 -->脚本执行
date +%F\ %H:%M:%S -->直接写入crontab -e 需要转义%,否则报错
***** cd /etc && tar czf /root/service_$(date +\%F\ \%H:\%M:\%S).tar.gz ./services
执行shell脚本,前面最好加/bin/sh(不管有没有权限,都可以执行)
定时任务的结尾加 /dev/null 2>$1(==> &>/dev/null ==> 1>/dev/null 2>/dev/null)-->定时任务,每执行一次,发一次邮件给管理员(/var/spool/clientsqueuq -->直接删除不掉,用 ls | xargs rm ),邮件的临时路径会无效的占用inode
在指定的用户下执行相关任务
生产任务程序不要随意打印输出信息
执行定时任务的脚本要规范路径(绝对路径)
如遇打包
1.到上级目录打包 打包/etc/services 到/root
2.如果分级别打包,则时间应该精确到分
cd /etc
tar czf /root/service_$(date +%F\ %H:%M:%S).tar.gz ./services
配置定时任务规范操作过程,防止出错
命令测试成功后,复制到脚本
测试脚本成功后,复制脚本的规范路径到crotab -e
标签:信息 写入 展示 spool 开启 命令参数 带来 打印 --
原文地址:https://www.cnblogs.com/ftl1012/p/crontab.html