两个备份的脚本
下面两个脚本用于备份 MySQL 数据库和文件夹(比如你的网站和系统配置文件夹)。因为其中包括了密码等安全信息,所以请将脚本文件的权限设置为其他人不可读。定期调用请使用 crontab。
备份文件中可能包含一些敏感信息,所以使用 GPG 加密是明智的选择。关于 GPG 见我的文章 《GnuPG 简介》。
- 备份数据库
DBPASS=your db password
DBUSER=your db user name
DBNAME=your db name
GPGUID=your gpg uid
EMAIL=”your@email.com”
mysqldump $DBNAME--opt -u $DBUSER -p$DBPASS > /home/you/db.sql
gpg -r $GPGUID -e /home/you/db.sql
rm /home/you/db.sql
gzip /home/you/db.sql.gpg
DATE=`date +%Y%m%d` ; mv /home/you/db.sql.gpg.gz /home/you/db.$DATE.sql.gpg.gz
echo ‘MySQL Backup is attached’ | mutt -a /home/you/db.$DATE.sql.gpg.gz $EMAIL -s “MySQL Backup “$DATE
rm /home/you/db.$DATE.sql.gpg.gz
这个脚本会将你的数据库 dump 到一个文件,然后用 GPG 将其加密(你的 pub key 的 UID 为 GPGUID),压缩,最后发送到你的信箱保存。注意将其中的 DBPASS, DBUSER, DBNAME, GPGUID, EMAIL, /home/you 等修改掉,DBUSER 用户并不需要对 DBNAME 数据库有完全的权限,只要 select 和 lock 权限即可,所以你可以建立一个 MySQL 用户专门用来备份。
- 备份文件夹
GPGUID=your gpg uid
EMAIL=”your@email.com”
tar -cf /home/you/folder.tar /the/local/dir/--absolute-names--ignore-failed-read
chmod go-rwx /home/you/folder.tar
gpg -r $GPGUID -e /home/you/folder.tar
rm /home/you/folder.tar
gzip /home/you/folder.tar.gpg
DATE=`date +%Y%m%d` ; mv home/you/folder.tar.gpg /home/you/folder.$DATE.tar.gpg.gz
echo ‘Folder Backup is attached’ | mutt -a /home/you/folder.$DATE.tar.gpg.gz $EMAIL -s “Folder Backup “$DATE
rm /home/you/folder.$DATE.sql.gpg.gz
工作原理和第一个脚本类似。
需要注意的是,上面两个脚本的双减号在 wordpress 中无法正常显示,所以我用两个减号中间加空格来代替。
更新:根据 Citygrit 网友的提示,已顺利解决了 -- 的显示问题。
[撰文/Hui]
“需要注意的是,上面两个脚本的双减号在 wordpress 中无法正常显示,所以我用两个减号中间加空格来代替。”
这个问题可以使用wordpress的html编辑编辑方式,在遇到类似”–”此类输出时用这样的方法:
tar -cf /home/you/folder.tar /the/local/dir/ --absolute-names --ignore-failed-read可以保证”–”不被转译,你可以试试看。晕,回复里的关键内容被转译了。看来还是单独写篇文章纠正wordpress下–被转译的问题。这就动手,请参看我的blog吧。
@citygrit:这的确是 WP 的问题。谢谢,马上来看。
好神速啊,献拙了。