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日志

[ec2-user@ip-172-31-27-98 ~]$ tail -F /var/log/cron
Feb 22 14:01:01 ip-172-31-27-98 run-parts(/etc/cron.hourly)[8878]: finished 0anacron
Feb 22 14:01:49 ip-172-31-27-98 crontab[8885]: (ec2-user) BEGIN EDIT (ec2-user)
Feb 22 14:02:09 ip-172-31-27-98 crontab[8885]: (ec2-user) END EDIT (ec2-user)
Feb 22 14:02:43 ip-172-31-27-98 crontab[8889]: (ec2-user) BEGIN EDIT (ec2-user)
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)
:q
^C
[ec2-user@ip-172-31-27-98 ~]$ date
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.)

原文地址:https://www.cnblogs.com/daxi33/p/10461025.html

时间: 2024-10-16 06:28:31

tomcat的备份脚本的相关文章

tomcat版本备份脚本

因为在实际生产环境中tomcat的在服务器上会有很多应用或者是在服务器上有多个tomcat,所以因为平时大批量的备份就写了一个tomcat的版本备份脚本用于每次版本迭代之前的备份,实现比较简单: #!/bin/bash #writer jim #For tomcat version backup tomcat_dir="/app/tomcat/tomcat-01" dis_bakdir="$tomcat_dir/webapps" dis_dir="$(ba

python之tomcat自动化备份,更新

由于tomcat开始集群,部署较为不变,于是写了个python自动化更新备份脚本 #!/usr/local/bin/python3 #coding:utf-8 import os, sys, subprocess, time, shutil site_file = 'xxxxxi' update_file = '/home/sourcedir/' + site_file + '.war' webapps_file = '/var/tomcat2/webapps/' + site_file + '

WEB页面,WEB环境版本,数据库,整站备份脚本

#!/bin/bash # #WEB页面,WEB环境版本,数据库,整站备份脚本 #当发生某个原因导致整个服务器无法恢复时,利用上面备份的相关数据即可重做一台一样的服务器 date_a=`date +%Y%m%d-%H%M%S` mkdir -p /web_bak/${date_a}/conf &> /dev/null mkdir -p /web_bak/${date_a}/web &> /dev/null mkdir -p /web_bak/${date_a}/mysql &a

mysql备份脚本

对extmail数据库进行每天01:00完全热备份,并可以完全恢复! 一.先建立备份脚本,如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 vi mysql_extmail_bak.sh #!/bin/bash # Program #    use mysqldump to Fully backup mysql data per week! BakDir=/mysqlback#要备份到的目录 LogFile=/var/log/bak.log#备份记录日志

linux 自动备份脚本

首先我在/root/backup 目录下建立一个文件夹, #mkdir /root/backup/mysqlbackup 以后在每天五点钟,就会有一个文件保存在这里. 接着新建文件 #vim /root/mysqlautobak 输入: filename=` date +%Y%m%d ` mysqldump --all-databases -uroot -p(mysql密码)> /root/backup/mysqlbackup/mysql$file.sql 保存退出! 让它可以执行 #chomd

Xtrabackup全量备份/增量备份脚本

一.全量备份脚本 1.全量备份脚本 #!/bin/bash #Description:xtrabackup complete #Author:created by michael #2017-08-07 v0.1 # USER=root PASSWD=123456 BACKUP_DIR=/backup/mysql/complete DATE=$(date +"%F_%T") [[ -d $BACKUP_DIR ]] || mkdir $DATE_DIR innobackupex --u

分享一个MySQL分库分表备份脚本(原)

分享一个MySQL分库备份脚本(原) 开发思路: 1.路径:规定备份到什么位置,把路径(先判断是否存在,不存在创建一个目录)先定义好,我的路径:/mysql/backup,每个备份用压缩提升效率,带上时间方便整理 2.取数据库:抓取数据库名称,我用的awk和grep配合取数据库的名称(如果想按照表备份可以再细化一下)注意要用mysql -e选项 这样才能做成脚本 3.系统环境变量:因为用到了函数,所以非系统内置的命令 最好在脚本里面用 . /etc/profile  把系统当前的环境变量传过来

mysql数据库备份脚本

自动备份Mysql脚本: 如下脚本为mysql自动备份脚本,仅供参考,可以根据实际情况修改. #!/bin/sh #auto backup mysql #20170329 #Define PATH定义变量 BAKDIR=/data/backup/mysql/`date +%Y-%m-%d` MYSQLDB=webapp MYSQLPW=backup MYSQLUSR=backup #must use root user run scripts 必须使用root用户运行,$UID为系统变量 if

mysql 备份脚本以及定时任务

数据是企业最宝贵的资源,作为运维人员备份数据库的数据是特别重要的一项工作,以下是个人查找资料以及个人总结所记录的mysql数据库备份脚本,记录在此作为学习和复习笔记. (1)分库备份脚本 #/bin/sh #version 0.1 MYUSER=root MYPASS=123123 #SOCKET=/data/3306/mysql.sock MYLOGIN="mysql -u$MYUSER -p$MYPASS " MYDUMP="mysqldump -u$MYUSER -p$