首页 » 建站技术 » DreamHost » 浏览内容

Dreamhost 数据自动备份


2008-09-05 07:54:49 3,310 0 发表评论 字体: 作者:C.K.

体验版 88 元,个人版 128 元,多用户版 288元个人版160元升级到多用户版。

Dreamhost提供强大的shell,可以方便的安全的进行对远程主机的操作.经过测试终于实现了数据库自动定时备份,然后发送到指定的邮箱,其实很简单就可以实现.
第一步:编写shell脚本代码,这个代码网上流传甚广,直接用就可以了,代码如下:

第一种方法
#!/bin/bash
DATE=$(date +%Y%m%d)
HOST=9458398.cn
USER=root
PASS=123456
DB=wordpress
EMAIL=”XX@XX.com”
TIL=”$DB($DATE)”
mysqldump –pt -u $USER -p$PASS $DB -h $HOST > backup.sql
gzip backup.sql
mv backup.sql.gz $TIL.gz | mutt $EMAIL -s$TIL -a $TIL.gz


第二种方法
mysqldump –opt -uUSER -pPASS -h 9458398.cn –all-databases > /home/web/backups/all.sql
tar zcf /mnt/local/home/web/backups/mysql.tar.gz /mnt/local/home/web/backups/all.sql
mutt 52@9458398.cn -a /mnt/local/home/web/backups/all.sql -s “MySQL Backup”
rm -r /mnt/local/home/web/backups/all.sql
rm -r /mnt/local/home/web/backups/mysql.tar.gz

第三种方法
#!/bin/bash
cd /home/username/backups/ #username改为你登录ssh时用的用户名
mkdir mysql
suffix=$(date +%y%m%d)
mysqldump –opt -uUser -pPass -h mysqlA.domain.com db_nameA > mysql/db_nameA.$suffix.sql #User为数据库用户名,pass为数据库用户密码,mysqlA.domain.com为数据库地址,db_nameA为数据库名,请根据你的情况修改。
tar zcf archives/mysql_backup.$suffix.tar.gz mysql/*
rm -r mysql/
mutt you@domain.com -a /home/username/backups/archives/mysql_backup.$suffix.tar -s “MySQL Backup” #you@domain.com修改为你准备用于收取备份压缩包的邮箱。

把上述脚本保存成任意文件名,比如说auto(注意上传后给auto owner 运行权限)
上传选用二进制方式上传,不然容易出错,或者直接在远程主机上用vim写。

保存后,上传到backups文件夹中。
在putty中运行

dos2unix ~/backups/auto
chmod 755 ~/backups/auto

第二步:利用crontab设定定时任务
所谓定时任务就是让主机在指定的时间执行你设定的脚本或者程序,这里就设定刚才的执行脚本。至于crontab命令网上可以查到详细说明,或者直接man crontab.
常用的crontab命令:
crontab -l 显示所有现存cron job.
crontab -r 删除当前cron jobs.
crontab -e 编辑当前 “crontab file”. DH推荐使用nano

34 12 * * * /home/user/wpautobackup

第一个数字是每小时的第几分钟,
第二个数字是每天的第几小时,
第三个数字是每月的第几天,
第四个数字是每年的第几月,
第五个数字是每周的第几天.

使用方式例如:
12 * * * * : 表示每小时的第12分钟.
12,34 * * * * : 表示每小时的第12及第34分钟两次
*/15 */2 * * *: 表示0:00, 0:15, 0:30, 0:45, 2:00, 2:15, 2:30, …
43 18 * * 7: 表示每个周日的6:43pm运行命令行.

在DreamHost下使用nano编辑完文件后,使用ctrl+o保存,ctrl+x退出编辑。

然后就等着邮箱收备份打包好的数据吧。万一数据出了问题,每天备份也不怕了。

另一种方式

在Dreamhost的panel,Goodies->Cron Jobs中新建Cron任务,选项设置为
Command to run: /home/User/backups/mysql.sh
#User改为你登录SSH时用的用户名。
时间照下图设置,将在北京时间每天的24:10左右运行备份MySQL程序,并发送备份压缩包到你指定的邮箱。

    网站统计 Statistics

    • 创建时间: 2005年1月3日 距今4855 天
    • 日志总数: 2461
    • 评论总数: 630
    • 标签总数: 654
    • 链接总数: 273
    • 最后更新: 2017-7-1 18:16:33
    • 您是本站第 13459686 位访客

    广告区 Guǎng Gào