先放上手动备份的脚本命令,学习写了一下最基本的交互
vi /root/backupDebian.sh
然后按I粘贴,按Esc输入:wq保存
#给予执行权限
chmod +x /root/backupDebian.sh
#执行脚本 需要输入yes才继续
/root/backupDebian.sh
自行按照脚本内容修改备份到的目录。我之后继续完善一下
echo "这个脚本是备份整个debian系统(耗时较久),确定要运行吗?"
read -p "输入yes确认运行 输入其他退出:" yesOrNo
echo "你的输入是: " $yesOrNo
if [ ${yesOrNo} = "yes" ];then
echo "输入【正确】,继续往下执行"
else
echo "输入【错误】,即将退出脚本"
exit 0
fi
echo "【开始备份】: "`date "+%Y-%m-%d %H:%M:%S"`
echo "【不要断开SSH连接】若需要备份的目录较大,请耐心等待"
echo "实测随身WIFI空间 2.9G/6.6G ,已用3.7GB,压缩后压缩包2GB,压缩用时27分钟,上传用时13分钟"
#设置备份文件存放路径 目录和文件名
saveDir="/mnt/alist/阿里云盘/backup/随身WIFI/" #"/mnt/alist/阿里云盘/backup/随身WIFI/"
nowDate=`date "+%Y-%m-%d"`"/" #再创建一个日期的文件夹,因为要放分卷包
mkdir $saveDir$nowDate #例如 /mnt/alist/阿里云盘/backup/随身WIFI/2022-12-27/
fileName=$saveDir$nowDate"debian.bak."`date "+%Y-%m-%d-%H-%M-%S"`".tar.gz." #最后有一个. 因为要打分卷包 xxx.tar.gz.03 比较好看
echo "【备份文件位置】: "$fileName
#设置需要备份的目录
backupDir="/"
#开始打包压缩备份 若想看到进度,可以使用 -zcpvf
tar --exclude=/proc --exclude=/tmp --exclude=/lost+found --exclude=/media --exclude=/mnt --exclude=/run --exclude=/swapfile -zcpvf - $backupDir | split -d -b 300m - $fileName
sleep 1s #延时1秒再展示
#展示备份文件信息,创建日期 大小等信息
ls -lh $saveDir$nowDate
echo "【备份完毕】: "`date "+%Y-%m-%d %H:%M:%S"`
echo "【备份文件位置】: "$fileName
echo "解压/tmp/test/的xxx.tar.gz开头的分卷压缩包到指定目录(/为根目录)命令如下,会强制覆盖,但比压缩包多的文件不会删除"
echo "cat /tmp/test/xxx.tar.gz* | tar zx -C /"