数据库备份文件
#!/bin/bash
#数据库备份脚本文件
#备份路径
BACKUP=/data/backup/db
DATETIME=$(date +%Y_%m_%d_%H%M%S)
echo "=======开始备份========"
echo "------>备份路径是$BACKUP/$DATETIME.tar.gz"
#主机
HOST=localhost
#用户名
DB_USERNAME=root
#密码
DB_USERPWD=123456
#备份数据库名称
DATABASE=learn
#判断备份路径是否存在,不存在则创建
[ ! -d "$BACKUP/$DATETIME" ] && mkdir -p "$BACKUP/$DATETIME"
#执行mysql备份数据库的指令
mysqldump -u${DB_USERNAME} -p${DB_USERPWD} --host=$HOST $DATABASE | giz > $BACKUP/$DATETIME/$DATETIME.sql.gz
#打包备份文件
cd $BACKUP
tar -zcvf $DATETIME.tar.gz $DATETIME
#删除临时目录
rm -rf $BACKUP/$DATETIME
#删除10天之前的备份文件
find $BACKUP -mtime +10 -name "*.tar.gz" -exec rm -rf {} \;
echo "=======备份完成========"
定期删除日志文件
#!/bin/bash
echo "========The script excute begin========"
baseFolder="/apps/tomcat8080/apache-tomcat-8.0.45/webapps/abnormalImg/"
year=$(date +%Y)
month=`date +%m`
monthStr=${month:0:1}
if [ $monthStr -eq "0" ];then
month1=${month#*0}
else
month1=$month
fi
month2=`expr $month1 - 2`
cd $baseFolder
for dir in $(ls $baseFolder)
do
if [ -d $dir ];then
if [ $dir != $year ];then
echo "The folder "$dir" will be removed"
rm -rf $dir
else folder=$baseFolder$year"/"
fi
fi
done
cd $folder
for dir1 in $(ls $folder)
do
if [ -d $dir1 ];then
if [ $dir1 -lt $month2 ];then
echo "The folder "$dir1" will be removed"
rm -rf $dir1
fi
fi
done
echo "========The script excute end========"
上面这个脚本的大概意思是:获取当年的年份 year,当月的月份 month ;然后遍历图片文件夹中所有目录,判断是不是小于当月的前三个月,如果是就直接 rm -rf 删除掉,如果不是则保留;
启动脚本文件
source /etc/profile
source ~/.bash_profile
#变量定义
time=`date +%Y%m%d%H%M%S`
src_home=/mnt/workspace/whfc-server-dubbo
src_app=whfc-operation/whfc-operation-service-provider/target/whfc-operation-service-provider-1.0-SNAPSHOT.jar
dst_home=/mnt/deploy/whfc-server-dubbo
dst_app=whfc-operation-service-provider-1.0-SNAPSHOT-$time.jar
dst_old=whfc-operation-service-provider-1.0-SNAPSHOT
#发布程序
cp $src_home/$src_app $dst_home/$dst_app
chmod 755 $dst_home/$dst_app
#程序重启
pid=`ps -ef | grep "$dst_old" | grep -v "grep" | awk '{print $2}'`
echo "--------------------"
for id in $pid
do
kill -9 $id
echo "killed $id"
done
echo "--------------------"
nohup java -jar $dst_home/$dst_app --spring.profiles.active=hwctest >/dev/null 2>&1 &
echo "start $dst_app success!"
创建crontab 定时任务
输入 crontab -e 进入定时任务创建模式,然后编写下面的定时任务:意思是每天早上8:10执行指定目录下面的指定.sh脚本文件(这里指的就是第一步中创建的定时删除文件的脚本文件 test_delete.sh):
crontab -e
# 定时 /shell执行文件
# minute (0 - 59) | hour (0 - 23) | day of month (1 - 31) | month (1 - 12) | day of week (0 - 6)
# 每日8:10分执行
10 8 * * * /opt/sh/test_delete.sh;
# 每月 4日 5:30分执行
30 5 4 * * /opt/sh/test_delete.sh;