#!/bin/bash# 每天備份log檔案log_path="/home/fdipzone/logs" # log目錄backup_path="/home/fdipzone/logs/bak" # 備份目錄expire=30 # 備份檔案只保留30天function backup(){ if [ -d "$log_path" ] && [ -d "$backup_path" ]; then for file in $(find $log_path -maxdepth 1 -name "*.log" -type f); do copy $file done else echo "${log_path} or ${backup_path} not exists" fi}function copy(){ ofile=$1 dpath="${backup_path}/$(date -d yesterday +%Y/%m/%d/)" dfile="${dpath}${ofile##*/}" if [ -f "$ofile" ] && [ -s "$ofile" ]; then if [ ! -d "$dpath" ]; then # create folder mkdir -p "$dpath" fi cp "$ofile" "$dfile" # copy file cat /dev/null > "$ofile" # create empty file echo "${ofile} copy to ${dfile} success" fi}function clearexpire(){ if [ -d "$backup_path" ]; then echo ${expire:=30} > /dev/null $(find $backup_path -name "*.log" -type f -mtime +$expire -exec rm {} \;) # delete expire file $(find $backup_path -mindepth 1 -depth -empty -type d -exec rm -r {} \;) # delete empty folder else echo "${backup_path} not exists" fi}backupclearexpireexit 0
更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/OS/Linux/