在云环境中,有时候需要每天把服务器上的jboss日志上传到公司的ftp服务器上,给所有人共享。bash脚本如下:
#!/bin/bash
#获取前一天的日期,格式类似2019-11-20
date=`date -d"-1 day" +"%Y-%m-%d"`
#jboss的log备份目录
bakdir=/home/root/test/wildfly/standalone/log
#需要备份log的文件名类似server.log.2019-11-20
bakname=server.log"."$date
#将日志压缩打包后的文件名
bakzip=$bakname".zip"
cd $bakdir
#将日志压缩打包
zip $bakzip $bakname
#上传文件到ftp服务器
ftp -i -v -n<<!
#myftp.com换成真实的ftp url
open myftp.com
#替换username和password
user username password
binary
cd /test/log
lcd $bakdir
prompt
put $bakzip $bakzip
close
bye
!
然后输入crontab -e,添加定时任务。
#每天凌晨00:10执行备份脚本
10 0 * * * /home/root/test/backup.sh >> /home/root/test/log.txt
最后重启crond服务即可。
sudo service crond restart