创建备份目录
1
2
3
|
cd / home mkdir backup cd backup |
创建备份 Shell 脚本:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
vim DatabaseName.sh #!/bin/bash / usr / local / mysql / bin / mysqldump - uusername - ppassword DatabaseName > / home / backup / DatabaseName_$(date + % Y % m % d_ % H % M % S).sql 对备份进行压缩: #!/bin/bash / usr / local / mysql / bin / mysqldump - uusername - ppassword DatabaseName | gzip > / home / backup / DatabaseName_$(date + % Y % m % d_ % H % M % S).sql.gz 注意: 把 username 替换为实际的用户名; 把 password 替换为实际的密码; 把 DatabaseName 替换为实际的数据库名; |
添加可执行权限
1
|
chmod u + x DatabaseName.sh |
添加计划任务
1
2
3
4
|
crontab - e 01 3 * * * root / home / backup / DatabaseName.sh 表示每天 3 点钟执行备份 |
Crontab 的格式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
第 1 列分钟 1 ~ 59 第 2 列小时 1 ~ 23 ( 0 表示子夜) 第 3 列日 1 ~ 31 第 4 列月 1 ~ 12 第 5 列星期 0 ~ 6 ( 0 表示星期天) 第 6 列要运行的命令 下面是 crontab 的格式: 分 时 日 月 星期 要运行的命令 这里有 crontab 文件条目的一些例子: 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 |