File tree 2 files changed +75
-0
lines changed
2 files changed +75
-0
lines changed Original file line number Diff line number Diff line change @@ -132,6 +132,7 @@ Nginx与Lua编写脚本的基本构建块是指令执行顺序的图
132
132
* [ SHELL脚本小技巧] ( /Nginx-Rtmp/Shell_script.md )
133
133
* [ Mysql 自动备份脚本安全加锁机制] ( /Nginx-Rtmp/backup_mysql.sh )
134
134
* [ PHP和Shell 脚本如何很好的搭配] ( /PHP/php-shell_run.md )
135
+ * [ 通过FTP备份MySQL数据库] ( /Shell/Backup-MySQL-FTP.md )
135
136
136
137
## 微信公众号
137
138
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