shell脚本

数据库备份文件

#!/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;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值