tomcat的备份脚本

reference:Crontab的20个例子 

先科普一下date的使用方法,在sh脚本中经常会使用得到

date

-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;
-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;
-u:显示GMT;
--help:在线帮助;
--version:显示版本信息。 
%H 小时,24小时制(00~23%I 小时,12小时制(01~12%k 小时,24小时制(0~23%l 小时,12小时制(1~12%M 分钟(00~59%p 显示出AM或PM
%r 显示时间,12小时制(hh:mm:ss %p)
%s 从1970年1月1日00:00:00到目前经历的秒数
%S 显示秒(00~59%T 显示时间,24小时制(hh:mm:ss)
%X 显示时间的格式(%H:%M:%S)
%Z 显示时区,日期域(CST)
%a 星期的简称(Sun~Sat)
%A 星期的全称(Sunday~Saturday)
%h,%b 月的简称(Jan~Dec)
%B 月的全称(January~December)
%c 日期和时间(Tue Nov 20 14:12:58 2012%d 一个月的第几天(01~31%x,%D 日期(mm/dd/yy)
%j 一年的第几天(001~366%m 月份(01~12%w 一个星期的第几天(0代表星期天)
%W 一年的第几个星期(00~53,星期一为第一天)
%y 年的最后两个数字(1999则是99)
在输出中如果要有空格,后面的格式语句必须是双引号包括的,不能是{}大括号
date +"%Y-%m-%d %H:%M"  输出:  2019-02-22 15:45
date +{%Y-%m-%d %H:%M}  就会报错:date: extra operand ‘%H:%M}’
crontab –e  输入下面的计划,每天20点备份上传一次tomcat log文件
0 20 * * * /home/ec2-user/backuptomcat.sh >>/home/ec2-user/backtomcat.log

检查发现到时间没起作用,查看crond日志

 1 [ec2-user@ip-172-31-27-98 ~]$ tail -F /var/log/cron
 2 Feb 22 14:01:01 ip-172-31-27-98 run-parts(/etc/cron.hourly)[8878]: finished 0anacron
 3 Feb 22 14:01:49 ip-172-31-27-98 crontab[8885]: (ec2-user) BEGIN EDIT (ec2-user)
 4 Feb 22 14:02:09 ip-172-31-27-98 crontab[8885]: (ec2-user) END EDIT (ec2-user)
 5 Feb 22 14:02:43 ip-172-31-27-98 crontab[8889]: (ec2-user) BEGIN EDIT (ec2-user)
 6 Feb 22 14:03:08 ip-172-31-27-98 crontab[8889]: (ec2-user) REPLACE (ec2-user)
 7 Feb 22 14:03:08 ip-172-31-27-98 crontab[8889]: (ec2-user) END EDIT (ec2-user)
 8 Feb 22 14:03:13 ip-172-31-27-98 crontab[8893]: (ec2-user) LIST (ec2-user)
 9 Feb 22 14:04:01 ip-172-31-27-98 crond[4057]: (ec2-user) RELOAD (/var/spool/cron/ec2-user)
10 Feb 22 14:11:49 ip-172-31-27-98 crontab[8918]: (ec2-user) BEGIN EDIT (ec2-user)
11 Feb 22 14:11:58 ip-172-31-27-98 crontab[8918]: (ec2-user) END EDIT (ec2-user)
12 
13 [ec2-user@ip-172-31-27-98 ~]$ date
14 Fri Feb 22 22:12:15 CST 2019

 

原来我之前把服务器的时区修改了,但是没有出去crond,导致crond还是以旧时区运行。重启crond:

[ec2-user@ip-172-31-27-98 ~]$ sudo service crond restart
Redirecting to /bin/systemctl restart crond.service
[ec2-user@ip-172-31-27-98 ~]$ tail -F /var/log/cron
Feb 22 14:03:08 ip-172-31-27-98 crontab[8889]: (ec2-user) REPLACE (ec2-user)
Feb 22 14:03:08 ip-172-31-27-98 crontab[8889]: (ec2-user) END EDIT (ec2-user)
Feb 22 14:03:13 ip-172-31-27-98 crontab[8893]: (ec2-user) LIST (ec2-user)
Feb 22 14:04:01 ip-172-31-27-98 crond[4057]: (ec2-user) RELOAD (/var/spool/cron/ec2-user)
Feb 22 14:11:49 ip-172-31-27-98 crontab[8918]: (ec2-user) BEGIN EDIT (ec2-user)
Feb 22 14:11:58 ip-172-31-27-98 crontab[8918]: (ec2-user) END EDIT (ec2-user)
Feb 22 14:13:42 ip-172-31-27-98 crond[4057]: (CRON) INFO (Shutting down)
Feb 22 14:13:42 ip-172-31-27-98 crond[8944]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 54% if used.)
Feb 22 14:13:42 ip-172-31-27-98 crond[8944]: (CRON) INFO (running with inotify support)
Feb 22 14:13:42 ip-172-31-27-98 crond[8944]: (CRON) INFO (@reboot jobs will be run at computer's startup.)

 

还是不行,网上搜索,解决办法参考:crontab执行时区与系统时间不一致问题

可能是rsyslog日志服务没有重启,那就重启rsyslog,然后再重启crond,问题解决

[root@ip-172-31-27-98 ec2-user]# service rsyslog restart
Redirecting to /bin/systemctl restart rsyslog.service
[root@ip-172-31-27-98 ec2-user]# service crond restart
Redirecting to /bin/systemctl restart crond.service
[root@ip-172-31-27-98 ec2-user]# exit
exit
[ec2-user@ip-172-31-27-98 ~]$ tail -F /var/log/cron
Feb 22 14:13:57 ip-172-31-27-98 crontab[8947]: (ec2-user) LIST (ec2-user)
Feb 22 14:14:37 ip-172-31-27-98 crond[8944]: (CRON) INFO (Shutting down)
Feb 22 14:14:49 ip-172-31-27-98 crond[8999]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 26% if used.)
Feb 22 14:14:49 ip-172-31-27-98 crond[8999]: (CRON) INFO (running with inotify support)
Feb 22 14:14:49 ip-172-31-27-98 crond[8999]: (CRON) INFO (@reboot jobs will be run at computer's startup.)
Feb 22 14:15:22 ip-172-31-27-98 crontab[9003]: (ec2-user) LIST (ec2-user)
Feb 22 22:16:15 ip-172-31-27-98 crond[8999]: (CRON) INFO (Shutting down)
Feb 22 22:16:15 ip-172-31-27-98 crond[9058]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 91% if used.)
Feb 22 22:16:15 ip-172-31-27-98 crond[9058]: (CRON) INFO (running with inotify support)
Feb 22 22:16:15 ip-172-31-27-98 crond[9058]: (CRON) INFO (@reboot jobs will be run at computer's startup.)

 

posted @ 2019-03-02 14:36  Daxi33  阅读(311)  评论(0编辑  收藏  举报