File tree Expand file tree Collapse file tree 2 files changed +75
-0
lines changed Expand file tree Collapse file tree 2 files changed +75
-0
lines changed Original file line number Diff line number Diff line change @@ -132,6 +132,7 @@ Nginx与Lua编写脚本的基本构建块是指令执行顺序的图
132132* [ SHELL脚本小技巧] ( /Nginx-Rtmp/Shell_script.md )
133133* [ Mysql 自动备份脚本安全加锁机制] ( /Nginx-Rtmp/backup_mysql.sh )
134134* [ PHP和Shell 脚本如何很好的搭配] ( /PHP/php-shell_run.md )
135+ * [ 通过FTP备份MySQL数据库] ( /Shell/Backup-MySQL-FTP.md )
135136
136137## 微信公众号
137138
Original file line number Diff line number Diff line change 1+ ### your favorite editor, create the script file
2+ ```
3+ vim backupdb.sh
4+ ```
5+
6+ ``` shell
7+ #! /bin/bash
8+
9+ # ############## Infos - Edit them accordingly ########################
10+
11+ DATE=` date +%Y-%m-%d_%H%M`
12+ LOCAL_BACKUP_DIR=" /backups"
13+ DB_NAME=" database_name"
14+ DB_USER=" root"
15+ DB_PASSWORD=" root_password"
16+
17+ FTP_SERVER=" 111.111.111.111"
18+ FTP_USERNAME=" ftp-user"
19+ FTP_PASSWORD=" ftp-pass"
20+ FTP_UPLOAD_DIR=" /upload"
21+
22+ LOG_FILE=/backups/backup-DATE.log
23+
24+ # ############## Local Backup ########################
25+
26+ mysqldump -u $DB_USER -p$DB_PASSWORD $DB_NAME | gzip > $LOCAL_BACKUP_DIR /$DATE -$DB_NAME .sql.gz
27+
28+ # ############## UPLOAD to FTP Server ################
29+
30+ ftp -nv $FTP_SERVER << EndFTP
31+ user "$FTP_USERNAME " "$FTP_PASSWORD "
32+ binary
33+ cd $FTP_UPLOAD_DIR
34+ lcd $LOCAL_BACKUP_DIR
35+ put "$DATE -$DB_NAME .sql.gz"
36+ bye
37+ EndFTP
38+
39+ # ############## Check and save log, also send an email ################
40+
41+ if test $? = 0
42+ then
43+ echo " Database Successfully Uploaded to the Ftp Server!"
44+ echo -e " Database Successfully created and uploaded to the FTP Server!" | mail -s " Backup from $DATE " your_email@email.com
45+
46+ else
47+ echo " Error in database Upload to Ftp Server" > $LOG_FILE
48+ fi
49+ ```
50+ 完成脚本编辑并保存文件后,我们可以通过以下命令使文件可执行:
51+ ```
52+ chmod +x backupdb.sh
53+ ```
54+ 您现在可以通过在终端中输入进行测试。
55+ ```
56+ /backups/backupdb.sh
57+ ```
58+ 完成执行后,键入ls -a以查看数据库是否已备份。还要确认它是否已发送到您的FTP服务器。
59+
60+ > 如果到目前为止一切正常,我们可以使用Crontab使它每天运行。
61+
62+ ## Crontab
63+
64+ 您可以使用以下命令编辑crontab:
65+ ```
66+ crontab -e
67+ ```
68+ 这将打开一个文本编辑器,您可以在其中输入每份工作的时间表并在新行上输入。
69+
70+ 因此,在编辑器中,键入或粘贴以下行:
71+ ```
72+ 30 02 * * * /backups/backupdb.sh
73+ ```
74+ 上面的示例将在每月的每天的02:30 am运行/backups/backupdb.sh。当然,您可以根据需要更改时间。
You can’t perform that action at this time.
0 commit comments