- 在Arch Linux上,可以使用
systemd
的定时器设置每天什么时候运行备份脚本
wget https://github.com/tickstep/aliyunpan/releases/download/v0.3.2/aliyunpan-v0.3.2-linux-amd64.zip
# 解压
unzip aliyunpan-v0.3.2-linux-amd64.zip -d /root/
# 改名
mv /root/aliyunpan-v0.3.2-linux-amd64 /root/aliyunpan
- 创建一个备份sh脚本,这里我就以博客和数据库目录为例
nano /root/backup.sh
# 写入下面内容
##########开始##########
#!/bin/bash
# 备份、上传和删除函数
backup_upload_delete() {
local backup_name="$1"
local source_dir="$2"
local target_dir="$3"
# 创建备份压缩文件
tar -cJPf "$backup_name" "$source_dir"
# 上传备份文件
/root/aliyunpan/aliyunpan upload --ow "$backup_name" "$target_dir" --drive "backup"
# 删除备份压缩文件
rm "$backup_name"
}
# MySQL备份
mysql_backup_name="/root/Mysql_backup_$(date +%u).tar.xz"
backup_upload_delete "$mysql_backup_name" "/var/lib/mysql" "/Mysql" # 确保路径正确
# 博客备份
blog_backup_name="/root/Blog_backup_$(date +%u).tar.xz"
backup_upload_delete "$blog_backup_name" "/var/www/blog" "/Blog" # 确保路径正确
- 创建一个“.timer”文件来定义定时器,这个配置将定时器设置为每天凌晨五点触发
nano /etc/systemd/system/backup.timer
# 写入下面内容
##########开始##########
[Unit]
Description=Backup timer
[Timer]
#OnCalendar=daily # 这行是每天0点运行
# 这里可以修改时间
OnCalendar=*-*-* 05:00:00
Persistent=true
[Install]
WantedBy=timers.target
nano /etc/systemd/system/backup.service
# 写入下面内容
##########开始##########
[Unit]
Description=Backup service
[Service]
Type=oneshot
# 这里填第一步创建脚本所在的目录
ExecStart=/root/backup.sh
systemctl enable --now backup.timer