# 系统备份



# lsyncd定时备份

前段时间2TB的固态硬盘突然坏了，才想起硬盘还是比较容易坏。还好通过[diskgenius](https://www.diskgenius.cn/)找回了大部分关键数据，从此还是要养成备份的习惯。准备一个U盘，将一些重要的数据定时备份到U盘中，这样多一份保险。

##### 当前环境

- ubuntu server-22
- lsyncd-2.2.3

##### 一、安装rsync+lsyncd

```bash
apt install rsync lsyncd
```

##### 二、配置同步备份目录

添加备份目录直接添加`sync`配置就行，可能不同发行版本配置文件路径会不一样，具体路径请参考`/etc/init.d/lsyncd`文件

```bash
# apt安装时默认不存在，需要手动创建
mkdir /etc/lsyncd
# 以下命令将覆盖文件内容，执行前请确保该文件不存在
cat <<EOF > /etc/lsyncd/lsyncd.conf.lua
settings {
  logfile = "/var/log/lsyncd/lsyncd.log",
  statusFile = "/var/log/lsyncd/lsyncd.status",
  pidfile = "/var/run/lsyncd.pid",
  statusInterval = 10,
  maxProcesses = 1,
  maxDelays = 100,
}

sync {
  default.rsync,
  source = "<source-1>",
  target = "<target-1>",
  excludeFrom="/etc/lsyncd/exclude",
}

sync {
  default.rsync,
  source = "<source-2>",
  target = "<target-2>",
  excludeFrom="/etc/lsyncd/exclude",
}


EOF
# 生成不需要同步文件配置
cat <<EOF > /etc/lsyncd/exclude
*.swp
_.bak
_.tmp
EOF
```

##### 三、启动服务

```bash
# 启动服务
sudo systemctl start lsyncd
# 注册开机服务
sudo systemctl enable lsyncd
```

##### 三、配置日志轮询切割

为了防止日志过大，添加日志轮询切割配置

```bash
cat <<EOF > /etc/logrotate.d/lsyncd
/var/log/lsyncd/lsyncd.log {
  weekly
  missingok
  notifempty
  maxsize 5M
  rotate 14
  delaycompress
  # create 0640 rsync root
  sharedscripts
  postrotate
    [ ! -f /var/run/lsyncd.pid ] || kill -USR2 `cat /var/run/lsyncd.pid`
  endscript
}
EOF

```

##### 参考资料：

- [【CSDN】 - lsyncd 配合 rsync 实时差异同步节点文件](https://blog.csdn.net/u010383467/article/details/123799932)
- [【官网】 - Config Layer 4: Default Config](https://lsyncd.github.io/lsyncd/manual/config/layer4/)