Ver código fonte

数据库定时备份修改

lvzq 6 anos atrás
pai
commit
997c27b1f1
1 arquivos alterados com 47 adições e 3 exclusões
  1. 47 3
      source/_posts/te-db-backup.md

+ 47 - 3
source/_posts/te-db-backup.md

@@ -22,7 +22,7 @@ tags:
 
 ## 正篇
 
-1. 将如下内容保存为 sh 文件,并保存至相关目录,例如:mysql-backup.sh
+1. 创建备份 Shell 脚本,并保存至相关目录,例如:mysql-backup.sh
     ```
     #!/bin/bash
     # Mysql 数据库自动备份脚本
@@ -45,7 +45,13 @@ tags:
     # 删除5天之前的就备份文件
     find $backup_dir/* -mtime +5 -exec rm {} \;
     ```
-2. 通过 `crontab -e` 命令打开定时任务配置文件,添加如下代码,即可实现每天定时备份 mysql 数据库
+2. 添加可执行权限
+    ```
+    ~]# chmod u+x mysql-backup.sh
+    添加可执行权限之后先执行一下,看看脚本有没有错误,能不能正常使用;
+    ~]# ./mysql-backup.sh
+    ```
+3. 通过 `crontab -e` 命令添加计划任务,添加如下代码,即可实现每天定时备份 mysql 数据库
     ```
     # 每天的23点50分执行备份
     50 23 * * * /data/backup/mysql-backup.sh
@@ -55,4 +61,42 @@ tags:
 
 ## 结束语
 
-- 未完待续...
+- 未完待续...
+- 附带`Crontab`的常用格式
+```
+第 1 列分钟 0~59
+第 2 列小时 0~23(0 表示子夜)
+第 3 列日 1~31
+第 4 列月 1~12
+第 5 列星期 0~6(0 表示星期天)
+第 6 列要运行的命令
+
+30 21 * * * /usr/local/apache/bin/apachectl restart
+上面的例子表示每晚的 21:30 重启 apache。
+
+45 4 1,10,22 * * /usr/local/apache/bin/apachectl restart
+上面的例子表示每月 1、10、22 日的 4 : 45 重启 apache。
+
+10 1 * * 6,0 /usr/local/apache/bin/apachectl restart
+上面的例子表示每周六、周日的 1 : 10 重启 apache。
+
+0,30 18-23 * * * /usr/local/apache/bin/apachectl restart
+上面的例子表示在每天 18 : 00 至 23 : 00 之间每隔 30 分钟重启 apache。
+
+0 23 * * 6 /usr/local/apache/bin/apachectl restart
+上面的例子表示每星期六的 11 : 00 pm 重启 apache。
+
+0 */1 * * * /usr/local/apache/bin/apachectl restart
+每一小时重启 apache
+
+#20160912 修正,感谢 @张琼的指正,之前写错了,*/1 和 * 表示的同样的意思,对于 / 的用法,可以参考另一篇文章 Crontab 中的除号到底怎么用?
+
+0 23-7/1 * * * /usr/local/apache/bin/apachectl restart
+晚上 11 点到早上 7 点之间,每隔一小时重启 apache
+
+0 11 4 * mon-wed /usr/local/apache/bin/apachectl restart
+每月的 4 号与每周一到周三的 11 点重启 apache
+
+0 4 1 jan * /usr/local/apache/bin/apachectl restart
+一月一号的 4 点重启 apache
+```