系统运行后,一些重要的数据是需要做好备份的,如果每天让一个人定时去备份tomcat下的日志,肯定会很麻烦的,服务器少了还好说,如果项目做大,服务器数量增加,难道要派很多人来定时的干这件事情么?肯定是不能这么干的。这样对于人力资源的利用太浪费了。那怎么办呢?我们把这件事情交给服务器自己办。
linux服务器上时候两个可以用的定时任务的,cron 和 crontab,crontab暂时没有用到,大家可以自己去了解了解,我主要用的是cron定时任务。
cron是一个linux下的定时执行工具(相当于windows下的scheduled task),可以在无需人工干预的情况下定时地运行任务task。
由于cron 是Linux的service(deamon),可以用以下的方法启动、关闭这个服务:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
备份tomcat的log命令cronlogs.sh
//复制前一天的日志到另一个目录
day=`date -d last-day +%Y-%m-%d`
echo $day
cp -u /usr/local/tomcat/logs/common-default.$day /home/ling.zhang/proxylogs
设置定时服务
//每天两点执行
cd /var/spool/cron
cat root
vi root
0 2 * * * /home/ling.zhang/cronlogs.sh
设置保存好后,最好先在本地测试下,成功后,执行上边crond的重启服务。
定时任务命令的格式介绍:
minute hour day month dayofweek command
minute - 从0到59的整数
hour - 从0到23的整数
day - 从1到31的整数 (必须是指定月份的有效日期)
month - 从1到12的整数 (或如Jan或Feb简写的月份)
dayofweek - 从0到7的整数,0或7用来描述周日 (或用Sun或Mon简写来表示)
command - 需要执行的命令(可用as ls /proc >> /tmp/proc或 执行自定义脚本的命令)
每天早上6点
0 6 * * * echo “Good morning.” >> /tmp/test.txt //注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。
每两个小时
0 /2 * * echo “Have a break now.” >> /tmp/test.txt
晚上11点到早上8点之间每两个小时,早上八点
0 23-7/2,8 * * * echo “Have a good dream:)” >> /tmp/test.txt
每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 * 1-3 command line
1月1日早上4点
0 4 1 1 * command line