两个备份的脚本

下面两个脚本用于备份 MySQL 数据库和文件夹(比如你的网站和系统配置文件夹)。因为其中包括了密码等安全信息,所以请将脚本文件的权限设置为其他人不可读。定期调用请使用 crontab。

备份文件中可能包含一些敏感信息,所以使用 GPG 加密是明智的选择。关于 GPG 见我的文章 《GnuPG 简介》

1. 备份数据库

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 用户专门用来备份。

2. 备份文件夹

GPGUID=your gpg uid
EMAIL=”your@email.com”
tar -cf /home/you/folder.tar /the/local/dir/ 2>/dev/null
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告诉我正常显示双减号的方法

3 条评论 发表在“两个备份的脚本”上

  1. [...] Ph.D. » Blog Archive » 两个备份的脚本 [...]

  2. citygrit 说:

    “需要注意的是,上面两个脚本的双减号在 wordpress 中无法正常显示,所以我用两个减号中间加空格来代替。”

    这个问题可以使用wordpress的html编辑编辑方式,在遇到类似”–”此类输出时用这样的方法:tar -cf /home/you/folder.tar /the/local/dir/ --absolute-names --ignore-failed-read可以保证”–”不被转译,你可以试试看。

  3. citygrit 说:

    晕,回复里的关键内容被转译了。看来还是单独写篇文章纠正wordpress下–被转译的问题。这就动手,请参看我的blog吧。

留下回复


为了防止恶意的垃圾评论脚本,请输入以下图片里面的数学方程式的答案。
防垃圾评论问题