原创文章,转载请注明出处
https://qiedd.com/
0. 简介
WordPress备份分为两个部分,备份数据库和网站目录备份
远程同步我们使用 rsync 进行备份
1. 安装 工具
Rsync
博客机和远程服务器都需要安装 Rsync
# Arch pacman -S rsync # Debian/Ubuntu apt install rsync -y # CentOS/Fedora yum install rsync -y # 可能需要安装epel-release yum install epel-release -y
cron
使用 crontab
来进行定时任务
# Arch pacman -S cron # Debian/Ubuntu apt install cron -y # CentOS/Fedora yum install cron -y
pigz
pigz
是一个支持多线程 gz 压缩工具
# Arch pacman -S pigz # Debian/Ubuntu apt install pigz -y # CentOS/Fedora yum install pigz -y
2. 进行博客备份
我们将备份博客根目录和数据库备份的命令写在同一个脚本中
# 创建脚本并生成 vim back.sh *** 脚本内容 *** #!/bin/bash tar --use-compress-program=pigz -cvf /root/backup.tar.gz /www/wordpress/ mysqldump -uroot -p密码 要备份的数据库名 > /root/backup.sql # 给脚本运行权限 chmod +x backup.sh # Arch的默认crontab编辑器为vi,我们需要修改成vim vim /etc/environment *** 最下面添加 *** EDITOR=vim # 添加到crontab crontab -e # 每天6点运行备份 0 6 * * * /root/backup.sh # 启动cron服务 systemctl enable cronie systemctl start cronie
3. 免登录传输
使用公钥免登录传输
# 生成私钥,一路回车即可 ssh-keygen -t rsa # 进入目录 cd .ssh # 保存私钥 cp id_rsa.pub authorized_keys # 更改权限防止登录失败 chmod 700 authorized_keys # 如果需要,可以禁用密码登陆 vim /etc/ssh/sshd_config *** 更改下列选项 *** # no为不使用密码 PasswordAuthentication no # 禁止root使用密码登陆 PermitRootLogin prohibit-password
然后将 .ssh/id_rsa
这个文件传输到远程机器上
# 可以使用sftp来传输 sftp root@远程机器IP # 如果你使用了其他端口作为SSH端口,并开启了密钥验证 sftp -P 端口 -i 公钥路径 root@远程机器IP # 将公钥传输过去 put /root/.ssh/id_rsa
4. 远程备份
在这台机子上也装好 rsync
# 创建一个脚本 vim rsync.sh # 脚本内容,会一直自动覆盖之前的备份 rsync -Prvz -e "ssh -i 刚刚传过来的公钥存放路径 -p 端口" root@博客IP:博客那边存放备份的路径 本地存放的路径 # 然后设置crontab crontab -e # 设置定时rsync,每天8点 0 8 * * * /root/rsync.sh
0 条评论