由于我不是一个真正的服务器pipe理员,但我总是渴望学习新的东西。
我有一个专门的服务器来照顾。 在该服务器上有2个虚拟机,每个虚拟机上有一个站点(webapp)。
这两个虚拟机只有CentOS 7 CLI。 我使用SSH连接通过物理服务器。 当我login时,我使用ssh连接到任何虚拟机。
我find了一个bash脚本来tar和压缩/ var / www文件夹并将其上传到FTP服务器。 这工作正常,但上传的文件总是损坏。 这个脚本也是mysql数据库的解压缩转储。 这个文件也是腐败的。
所以,我的问题是:除了修复什么是破坏文件(备份本身或上传或FTP服务器)这是一个好方法? 怎么样的conf文件(apache2,mysql,其他)我可以简单地将它们添加到备份例程?
我认为有一些更清洁和实用的工具/脚本来做到这一点。 我也尝试许多webpipe理员,如webmin,ajenti,centos webpanel。 但是我不喜欢在服务器上使用GUI。
TL; DR:需要知道是否有一个很好的方法来备份/ var / www,mysql转储和其他文件(如apache2和mdb conf)到FTP,Dropbox,Cloud。
谢谢你的时间。 对不起我的英语不好。
这是一个好的备份方法,根据您的需要,有一些优点和缺点。
这就是说,这是一个非常普遍的方法,所以如果你能够忍受这个利弊,那就去吧。 **
FTP腐败问题
我的猜测是,FTP文件已损坏,因为它们没有以BINARY模式上传,而是以ASCII模式传输。 另外请注意,FTP不安全,您的凭据和备份可能被截获。
未压缩的MySQL转储
压缩备份。 备份需要更长的时间,但您可能会花时间复制。 你可以用下面的命令来实现这个function:
mysqldump -u root -pPASS --all-databases | gzip -9 > mysql.sql.gz
备份其他configuration
是的,您可以简单地将这些添加到备份。 如果你正在备份/var/www现在,修改你的命令是这样的:
tar cf backup.tar mysql.sql.gz /var/www /etc/apache2/conf* /etc/my.cnf /var/spool/cron /etc/ssh
上面的例子备份/ var / www,Apacheconfiguration目录,MySQLconfiguration文件,/ var / spool / cron中的用户crontabs以及SSHDconfiguration。 您可以根据需要将文件/目录添加到列表中。
然后,备份完成后,将备份传输到远程系统并将其删除。
希望有所帮助!
*如果你可以支持它或有一个远程系统,你可以备份,看看rsync 。
实质上你可以编写一个命令来备份所有的文件/目录,除了它们被安全地备份到远程系统,并且也被更有效地传送。 如果您的文件在备份之间没有更改,则不会被复制。 如果你有一个大文件(即日志文件),那么只有被更改的部分被复制,从而节省大量的数据传输。
备份系统需要通过SSH访问(使用密钥或密码)并安装rsync。 那么你可以更有效地pipe理你的备份。 为了增加安全性,您可以备份备份服务器上的文件并保留历史logging。
**根据您的主机操作系统,您可以查看一些可以实时备份系统或虚拟机的块级备份软件,这些备份软件可以用来对虚拟机进行裸机还原。