Wordpress Manually Backup - Script

上次写了 wordpress 的手动备份,现在加上一个把所有命令整合的脚本,完成自动备份的动能。

下面的脚本,会把 wordpress 的目录以及数据库,打包后发送到备份服务器。

/home/acytoo/.bin/webk.sh<db-user-name>是数据库用户名 <db-password> 是数据库密码 <db-name> 是数据库名

#!/bin/bash

# Create backup folder
dt=$(date '+%m_%d_%Y_%H_%M_%S');
target_dir=${HOME}/.cache/web_backup/${dt};
mkdir -p ${target_dir}

# Copy wordpress folder here
cp -r ${HOME}/wordpress ${target_dir}/wordpress

# Export the database
mysqldump -u <db-user-name> --password='<db-password>' <db-name> > ${target_dir}/db-backup.sql

# Archiving them, and then remove the directory
tar --create --file ${target_dir}.tar --remove-files ${target_dir}

# scp the file to va
scp -P 22 ${target_dir}.tar <user-name>@<backup-server>:/home/username/websitebk/

# remove backed tar
rm ${target_dir}.tar

下面是执行上面备份脚本的服务,与定时器搭配,定时执行备份任务 /etc/systemd/system/webk.service

[Unit]
Description=Backup Website
Documentation=https://acytoo.com/ladder/wordpress-manually-backup-script
After=network.target nss-lookup.target

[Service]
User=jof
ExecStart=/home/acytoo/.bin/webk.sh

[Install]
WantedBy=multi-user.target

下面是定期执行上面服务的定时器,两个文件应该在同一文件夹,拥有同样的名字,只有后缀名不同。 /etc/systemd/system/webk.timer

[Unit]
Description=Run webk daily

[Timer]
OnCalendar=*-*-* 2:00:00
OnCalendar=*-*-* 14:00:00
Persistent=true

[Install]
WantedBy=timers.target