linux每天自动切割nginx日志备份到指定目录bash脚本

  • 2018-03-16 11:42:41
  • 脚本
  • 31
  • shevechco

自己写了个记录下,方便以后直接copy,linux计划任务设置,每天凌成1分开始自动切割备份

01.
01 00 * * * /data/tool/cut_log.sh

将下面存为cut_log.sh传到/data/tool/目录下,并给执行权限 chmod 755 /data/tool/cut_log.sh或者chmod +x /data/tool/cut_log.sh

01.
#!/bin/bash
02.
#01 00 */1 * * ${PATH}script.sh
03.
#author merci
04.
05.
#格式化日期格式
06.
D=$(date +%Y%m%d)
07.
#nginx日志目录路径
08.
NGINXLOG="/usr/local/nginx/logs/"
09.
#nginx切割保存日志目录
10.
SAVEPATH="/data/logs/nginx/"
11.
#nginx切割保存日志目录(日期建立)
12.
LOGPATH=${SAVEPATH}$D
13.
#日志名
14.
LOGNAME="access.log"
15.
#nginx错误日志目录
16.
ERRPATH=${SAVEPATH}$D
17.
#错误日志名
18.
ERRNAME="error.log"
19.
#日志保存最近几天
20.
SAVEDAY=7
21.
22.
function cut_log(){
23.
mkdir -p ${LOGPATH}
24.
if [ -f "${NGINXLOG}${LOGNAME}" ];then
25.
mv ${NGINXLOG}${LOGNAME} ${LOGPATH}/${LOGNAME}
26.
fi
27.
if [ -f "${NGINXLOG}${ERRNAME}" ];then
28.
mv ${NGINXLOG}${ERRNAME} ${LOGPATH}/${ERRNAME}
29.
fi
30.
}
31.
function del_backup(){
32.
declare -a backup
33.
backuplist=`ls ${SAVEPATH}`
34.
i=0
35.
for a in ${backuplist}
36.
do
37.
backup[$i]=$a
38.
let i=$i+1
39.
done
40.
if [ "${#backup[@]}" -gt "${SAVEDAY}" ];then
41.
#最旧的备份
42.
# ${backup[0]}
43.
#----------------------------
44.
        #最新的备份
45.
        # n=`expr ${#backup[@]} - 1`;${backup[$n]} 或者 ${backup[@]: -1}
46.
        #----------------------------
47.
rm -rf ${SAVEPATH}${backup[0]} >/dev/null 2>&1
48.
else
49.
exit 0
50.
fi
51.
}
52.
53.
cut_log
54.
del_backup


内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.sulao.cn/post/460

相关推荐