一、创建备份日志脚本
注:通过在每台节点服务器上的脚本来备份应用服务器的应用日志到日志备份服务器
二、创建存放shell脚本的目录
mkdir /root/scripts
注:目录名称任意,目录位置任意,都根据自己的喜好即可。
三、创建日志备份脚本
#!/bin/bash
#赋值时间戳和节点服务器
sdate=$( date -d "yesterday" '+%Y-%m-%d' )
node_id="app01-193"
#node_id="app02-194"
#设置备份日志循环数组(所有应用存放日志的目录名)
s=("cjkj-trade" "cjkj-station" "cjkj-order" "cjkj-account" "xtxy-openapi" "cjkj-appweb" "cjkj-data" "cjkj-energy-hall-admin" "cjkj-energy-hall-api" "cjkj-energy-hall-report" "cjkj-enterprise" "cjkj-operate-system" "cjkj-operate-system-restful" "cjkj-sassweb" "cjkj-station-admin-restful" "cjkj-operate-system" "cjkj-user" "oil-hall-cron" "oil-hall-server" "xtxy-geotool" "xtxy-gps-analyze" "xtxy-openapi" "xtxy-station-admin")
# for循环遍历数组
for item in "${s[@]}"
do
echo "$item"
cd /data/logs/$item
find ./ -type f \( -name "all.log.*" ! -name "*.gz" \) -mtime +7 -exec gzip {} \;
sleep 10
find ./ -type f \( -name "error.log.*" ! -name "*.gz" \) -mtime +7 -exec gzip {} \;
sleep 10
ssh root@172.17.140.199 "mkdir -p /data/back_logs/${node_id}/${item}/ "
rsync -av --bwlimit=100 ./*.gz root@172.17.140.199:/data/back_logs/${node_id}/${item}/
sleep 10
done
注:以上shell脚本是在需要做日志备份的节点服务器上,如果想让脚本在日志备份的服务器上,需要做一些调整,例如赋值node_id="app01-193"等,需要改成IP地址,同步命令也需要根据实际情况调整。
四、设置定时任务crontab
* 3 * * * /bin/bash /root/scripts/log_back.sh >/dev/null &
注:每天凌晨三点执行日志备份脚本,执行过程回收垃圾箱。