This question already has answers here:
Automated or regular backup of mysql data
(2个答案)
Linux shell script for database backup
(9个答案)
三年前关闭。
我想设置一个cron作业来运行,以便它在数据库运行时自动备份MySQL数据库,然后将该备份FTP到备份服务器。
我想我可以用bash脚本来实现。
有人知道一个很好的方法来完成这个任务吗?
提前谢谢。
lftp.脚本:
注:这种方法有许多问题:
ftp是不加密的,所以任何能够嗅探网络的人都可以看到密码和数据库数据。通过gpg-e[key]管道传输可以用于加密转储,但ftp密码保持未加密状态(sftp、scp是更好的选择)
如果有人入侵数据库服务器,他可以使用此脚本中的用户信息访问ftp服务器,并根据权限删除备份(这在现实世界中已经发生:http://seclists.org/fulldisclosure/2009/Jun/0048.html)
(2个答案)
Linux shell script for database backup
(9个答案)
三年前关闭。
我想设置一个cron作业来运行,以便它在数据库运行时自动备份MySQL数据库,然后将该备份FTP到备份服务器。
我想我可以用bash脚本来实现。
有人知道一个很好的方法来完成这个任务吗?
提前谢谢。
最佳答案
这是使用lftp命令行ftp客户端的一种非常简单的方法:
备份.sh:
mysqldump -f [database] | gzip > /backup/[database].dump.gz
lftp -f /backup/lftp.script
lftp.脚本:
open backup.ftp.example.com
user [username] [password]
cd /backup
mv webflag.dump.gz.8 webflag.dump.gz.9
mv webflag.dump.gz.7 webflag.dump.gz.8
mv webflag.dump.gz.6 webflag.dump.gz.7
mv webflag.dump.gz.5 webflag.dump.gz.6
mv webflag.dump.gz.4 webflag.dump.gz.5
mv webflag.dump.gz.3 webflag.dump.gz.4
mv webflag.dump.gz.2 webflag.dump.gz.3
mv webflag.dump.gz.1 webflag.dump.gz.2
mv webflag.dump.gz webflag.dump.gz.1
注:这种方法有许多问题:
ftp是不加密的,所以任何能够嗅探网络的人都可以看到密码和数据库数据。通过gpg-e[key]管道传输可以用于加密转储,但ftp密码保持未加密状态(sftp、scp是更好的选择)
如果有人入侵数据库服务器,他可以使用此脚本中的用户信息访问ftp服务器,并根据权限删除备份(这在现实世界中已经发生:http://seclists.org/fulldisclosure/2009/Jun/0048.html)
09-05 04:32