跳转至

爱情诚可贵,数据价亦高

概览

目标

学会 rsync 增量备份,实现 systemd 关机时自动执行脚本

路线

📖 ✈ 备份的重要性rsync 增量备份systemd 关机时自动执行 ✈ 📔

反馈 or 求助

📕 或许写的不尽你意,如果你有什么问题或是什么建议,可以 Email to: [email protected] 或者使用 anydesk 请求协助,我们一起探索前行

备份的重要性

搜索

吴氏者,初从文,三年不中,后习武,校场发矢,中鼓吏,逐之出,遂学医,有所成,自撰一良方,服之,卒。

备份很重要

备份很重要

备份很重要

重要的事情说三遍

12.10,一个悲伤的日子,手残给 Linux 的 Home 分区格式化了,找了一圈只有一个 7.16 的 Home 备份,真是一格回到解放前啊。

我的资料,我的代码,我的不可描述。。。(你没看错,大佬的电脑里也有不可描述——小僵尸评)

为了防止此种事情再次发生(绝不能在发生),写了一个脚本备份 home,脚本超级简单,但是每天执行脚本太累了。所以研究了一下 systemd 的服务,现在完成了基本的备份功能。暂时没有发现有什么不妥的地方。

rsync 增量备份

提前说明下,我的分区是 SSD 三个分区 / /home /swap,HDD 自动挂在到 /mnt/backup 下

脚本很简单,文件名为Home_sync.sh,内容如下

#! /bin/bash

rsync -az \
/home/susu/  \
--exclude='.cache' \
--delete \
/mnt/backup/Home_backup/

这里使用的是 rsync 来增量备份的,有关 rsync 的详细用法后续会发

--exclude 是用来过滤文件及文件夹的

--delete 是同步时删除没有的文件

systemd 关机时自动执行

虽然有了脚本,但是还是需要手动执行,所以我们需要 systemd 写一个服务(service)来实现关机自动执行脚本

/lib/systemd/system/ 创建文件名为 home_sync.service,内容如下

[Unit]
Description=Backup susu home dir to archives
RequiresMountsFor=/home /mnt/backup

[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/true
ExecStop=/bin/bash /home/susu/Tools/Home_sync.sh

[Install]
WantedBy=multi-user.target

重新加载 systemd 配置

sudo systemctl daemon-reload

开机自动启动

sudo systemctl enable home_sync.service

查看服务状态

sudo systemctl status home_sync.service

启动service

sudo systemctl start home_sync.service

经过一顿操作,终于不用担心手残把 home 格式化了。

more

更多 Linux 日常小技巧,以及作者不为人知的小秘密等你来发现

TheGuest