istoreos系统备份

1、软件包里安装一个dd进度条插件:coreutils-dd,安装之前记得点击更新列表

2、运行fdisk -l查看下目前分区情况,一般系统就在sda1、sda2、sda3这三个分区,观察下面红框内部分。我的分区有点不同。

3、运行备份指令,其中,

  • if是要备份的分区名称
  • of是备份后的文件路径,如我这里备份到/mnt/sda4/backups/下,文件名为iStoreOS_时间戳.img,建议文件名带上当前备份的时间方便查看。
  • bs是要备份的分区的起点,也就是上面截图里的红框部分;count是终点,记得要+1,对比红框部分与下面代码部分
  • status=progress就是加载进度条,也就是用到最开始安装的那个coreutils-dd插件。

可以直接执行备份并压缩:(我是整盘备份)

dd if=/dev/mmcblk0 bs=512 count=244318175 status=progress | gzip >/mnt/usb2_2-1/backup/iStoreOS_$(date +%Y%m%d).img.gz

4、未来就可以直接用这个img文件按照最开始部署的方式写盘,完美还原整个系统。

5、同时,可以远程备份到其他服务器以留存,带端口的加上 -P ,P大写。

scp -P [远程服务器端口号] iStoreOS_20221016.img.gz [远程服务器用户名]@[远程服务器ip:[远程服务器目录]

进阶玩法:直接在定时任务里添加任务,实现定时自动备份、打包、压缩并上传到远程服务器留存。sh脚本文件如下,可复制内容保存为backup_scp.sh文件:

# 当前时间变量
DATE=`date +%Y%m%d`
# 文件夹路径
bakDir=/mnt/sda4/backups
# 远程服务器用户名
remoteUser=[远程服务器用户名]
# 远程服务器存储路径
remoteDir=[远程服务器目录]

# 日志文件
logFile=${bakDir}/${DATE}.log
# 压缩文件
gzFile=${bakDir}/iStoreOS_${DATE}.img.gz

# 创建备份文件夹目录
mkdir -p ${bakDir}

echo "================================================" >> ${logFile}
echo "==========  开始执行任务 begin:$(date +"%Y-%m-%d %H:%M:%S")  ==========" >> ${logFile}
echo "================================================" >> ${logFile}

echo "" >> ${logFile}

# 执行备份并写入日志
echo ">>>>>>>>  开始备份 begin:$(date +"%Y-%m-%d %H:%M:%S")  >>>>>>>>" >> ${logFile}
# 打开当前日期的备份目录
cd ${bakDir}
echo "1.打开${bakDir}:$(date +"%Y-%m-%d %H:%M:%S")" >> ${logFile}
# 备份、打包并压缩,同时写入日志
echo "2.备份、打包并压缩,同时写入日志:$(date +"%Y-%m-%d %H:%M:%S")" >> ${logFile}
dd if=/dev/sda bs=512 count=4982272 | gzip >${gzFile} 2>>${logFile}
echo "<<<<<<<  结束备份并打包压缩 end:$(date +"%Y-%m-%d %H:%M:%S")  <<<<<<<" >> ${logFile}

echo "" >> ${logFile}

# 上传备份文件
echo ">>>>>>>>  开始scp上传文件 begin:$(date +"%Y-%m-%d %H:%M:%S")  >>>>>>>>" >> ${logFile}
sshpass -p [远程服务器密码] scp -P 222 ${gzFile} ${remoteUser}@192.168.31.40:${remoteDir}
echo "<<<<<<<  结束scp上传文件 end:$(date +"%Y-%m-%d %H:%M:%S")  <<<<<<<" >> ${logFile}

echo "" >> ${logFile}
echo "删除本地备份文件:$(date +"%Y-%m-%d %H:%M:%S")" >> ${logFile}
rm -fr ${gzFile}

echo "" >> ${logFile}
echo "================================================" >> ${logFile}
echo "==========  结束所有任务 end:$(date +"%Y-%m-%d %H:%M:%S")  ==========" >> ${logFile}
echo "================================================" >> ${logFile}

到iStoreOS后台,进入计划任务,加上指令,保存即可。(例如我这里是每周二6点执行一次)

0 6 * * 2 [shell脚本所在目录]/backup_scp.sh
文章已创建 13

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

相关文章

鲁ICP备2024095642号-1
鲁ICP备2024095642号-2

鲁公网安备37028202001157号

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部