Linux 定期自动备份脚本

本文提供了一个使用tar命令进行周期性文件备份的bash脚本示例。该脚本能够根据指定的项目列表定期备份文件,并自动清理过期的备份文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是一个简章的利用tar备份的脚本!虽然没有什么技术性,但有时也有帮助。

backup.sh

#!/bin/bash
#author:        InBi
#date:          2011-08-05
#role:          backup files periodically.
#website:       http://www.itwhy.org/2011/07-28/707.html
##################################################
LogFile=/backup/log/`date +"%Y-%m"`.log
SourceDir=/var/RDfile
BakDir=/backup
RetainDay=20
ProjectLst=/backup/project.lst
##################################################
DATE=`date +"%Y-%m-%d"`
echo "backup start at $(date +"%Y-%m-%d %H:%M:%S")" >$LogFile
echo "--------------------------------------------------" >>$LogFile
cd $BakDir
PROJECTLIST=`cat $ProjectLst`
for Project in $PROJECTLIST
do
	ProjectData=$SourceDir/$Project
	DestDir=$BakDir/$Project
	PackFile=$DATE.$Project.tgz
	if [ -f $BakDir/$PackFile ]
	then
		echo "backup file have exist !" >>$LogFile
	else
		cp -RHpf $ProjectData $DestDir >/dev/null
		tar -zcvf $PackFile $Project >/dev/null
		echo "backup $Project done into $PackFile" >>$LogFile
		rm -rf $Project
	fi
done
find $Bakdir -type f -mtime +$RetainDay -name "*.$Project.tgz" -exec rm {} \; >/dev/null
echo "--------------------------------------------------" >>$LogFile
echo "backup end at $(date +"%Y-%m-%d %H:%M:%S")" >>$LogFile
echo " " >> $LogFile
exit 0

project.lst

onu_arm
onu_voip
onu_wifi
5xxx
7xxx
8xxx
nms

转载于:https://my.oschina.net/u/172508/blog/29772

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值