如何创建Cron作业以将MySQL和FTP备份备份到我的备份服务器? [英] How to create Cron job to backup MySQL and FTP backup to my backup server?
本文介绍了如何创建Cron作业以将MySQL和FTP备份备份到我的备份服务器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想设置一个要运行的cron作业,以便它将在数据库运行时自动备份我的MySQL数据库,然后将该备份通过FTP传输到我的备份服务器上.
I want to setup a cron job to run so that it will automatically backup my MySQL database, while the database is running, and then FTP that backup to my backup server.
我认为我可以使用bash脚本来做到这一点.
I assume I can do this using a bash script.
有人知道实现此目标的好方法吗?
Anyone know of a good way to accomplish this?
谢谢.
推荐答案
这是使用lftp命令行ftp客户端的非常简单的方法:
This is a very simple approach using the lftp command line ftp client:
backup.sh:
backup.sh:
mysqldump -f [database] | gzip > /backup/[database].dump.gz
lftp -f /backup/lftp.script
lftp.script:
lftp.script:
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
注意:此方法存在许多问题:
Note: This approach has a number of issues:
- ftp未加密,因此任何能够嗅探网络的人都可以看到密码和数据库数据.通过gpg -e [key]对其进行管道传输可用于加密转储,但ftp密码保持未加密状态(sftp,scp是更好的选择)
- 如果有人入侵数据库服务器,他可以使用此脚本中的用户信息来访问ftp服务器,并根据权限删除备份(这在现实世界中已发生: 查看全文