我正在运行WHM / cPanel,并且我想要制作自己的备份方法,而不是WHM提供的。
我需要做的是备份每个用户public_html目录(/ home / username / public_html /)和MySQL信息,然后将它们传输到我的备份服务器(SSH不FTP)。
我只是不知道如何制作这样的脚本? 还是有一个准备好? 我不知道这样做很难或容易这样做有人可以给我一点kickstart! 🙂
哦,我正在运行CentOS 5.3 x86_64,Apache 2.2,PHP 5.2.11,cPanel 11.24.2(< – 不在备份服务器)
感谢所有的帮助!
当然,有很多选项可以用来做非糟糕的备份。 你可以用rsync编写一个脚本,使用一个现有的基于rsync的备份系统(我使用了dirvish,但它可能超出了你所需要或愿意设置的),或者你可以使用像rdiff-backup(我们在工作时使用的那样) )。 我也听说过关于backuppc的一些好消息。 有几百个备份系统, 选一个主要是掷镖的问题。
一些基本的,有些容易出错的做法是:
#!/bin/bash for i in `ls /path/to/public_html`; do echo "Backing up ${i}" tar -cjvf /path/to/backupfolder/${i}.tar.gz ${i} scp /path/to/backupfolder/${i}.tar.gz username@backupserver:/backup/location/ rm /path/to/backupfolder/${i}.tar.gz done;
而且为了备份每个mysql数据库,你可以做一些事情:
#!/bin/bash for i in `mysql -uroot -ppassword --batch -e "show databases" | grep -v "Database"`; do mysqldump -uroot -ppassword --single-transaction ${i} > /path/to/dbbackup/${i}.sql scp /path/to/dbbackup/${i}.sql username@backupserver:/backup/location/ rm /path/to/dbbackup/${i}.sql done;
显然,这不是一个最佳/安全的解决scheme,也不包含任何时间戳信息。 它还假定您的主机和备份计算机之间有公钥。
另外,我个人不会使用这种方法;)
首先,请描述为什么cPanel的备份方法不足以满足您的需求。 这样我们可以更好地理解你的问题。
另外,我build议你看看现有的备份软件,而不是自己动手。 有很多推荐的解决scheme; 例如用于小型家庭备份的Areca备份,用于大型安装的Amanda,等等。 看看这里或谷歌。
也就是说,您可以使用大多数命令行SFTP工具(例如标准的sftp工具或curl )来编写SFTP传输脚本。 尝试一下,再问一遍是否有问题。