以下是一个使用 bash 脚本备份 Halo 博客的示例。这个脚本使用 rsync 命令复制文件到远程服务器上,并压缩备份文件。
请注意,以下脚本仅供参考。在使用之前,您需要根据自己的需求修改变量和设置。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| BACKUP_DIR="/path/to/backup/directory" LOG_FILE="/path/to/backup/log/file.log" RSYNC_USER="remote-username" RSYNC_HOST="remote-hostname" RSYNC_PATH="/path/to/remote/directory" EXCLUDE_FILE="/path/to/exclude/file.txt"
mkdir -p "$BACKUP_DIR"
BACKUP_FILENAME="halo-$(date +%Y-%m-%d-%H%M%S).tar.gz"
tar -czf "$BACKUP_DIR/$BACKUP_FILENAME" /path/to/halo/blog
rsync -avz -e ssh --exclude-from="$EXCLUDE_FILE" "$BACKUP_DIR/$BACKUP_FILENAME" "$RSYNC_USER@$RSYNC_HOST:$RSYNC_PATH"
echo "$(date +%Y-%m-%d-%H%M%S) - Backup created: $BACKUP_FILENAME" >> "$LOG_FILE"
find "$BACKUP_DIR" -type f -name "*.tar.gz" -mtime +7 -delete
|
您需要修改的变量是:
BACKUP_DIR: 备份文件存放的目录。
LOG_FILE: 日志文件的路径和文件名。
RSYNC_USER: 远程服务器的用户名。
RSYNC_HOST: 远程服务器的主机名或 IP 地址。
RSYNC_PATH: 远程服务器存放备份文件的目录。
EXCLUDE_FILE: 排除不需要备份的文件列表。
在此脚本中,我们使用了 tar 命令将博客文件打包成备份文件,并使用 rsync 命令将备份文件上传到远程服务器。我们还记录了备份信息到日志文件,并删除了七天前的旧备份文件。
请注意,此脚本需要定期运行,以自动备份您的博客。您可以使用 cron 作业或其他定时工具来实现自动运行。