一、MYSQL5.7自动备份

1、修改my.cnf配置文件(原因使用mysqldump备份的时候直接输入账号密码会提示:mysqldump: [Warning] Using a password on the command line interface can be insecure.)

vim /etc/my.cnf

在最后添加 your_backup_user_name 和 your_backup_password 改成自己的账号密码

[mysqldump]

user=your_backup_user_name
password=your_backup_password

然后保存退出。

2、编写/home/mysql.sh并设置权限 chmod 755 mysql.sh

#!/bin/bash


db_name="mysql"
backup_dir="/home/backup/database"
time="$(date +"%Y%m%d%H%M%S")"

#mysqldump -u$db_user -p$db_passwd $db_name > "$backup_dir/$db_name"_"$time.sql"
mysqldump $db_name > "$backup_dir/$db_name"_"$time.sql"

3、运行mysql.sh查看对应目录下是否生成备份文件

./mysql.sh

4、添加自动执行任务(表示每8小时执行一次)

vim /etc/crontab

或者

crontab -e

然后输入内容保存:

* */8 * * * root /home/mysql.sh

/etc/crontab文件 和 crontab -e命令区别

修改/etc/crontab这种方法只有root用户能用,这种方法更加方便与直接直接给其他用户设置计划任务,而且还可以指定执行shell等等,
crontab -e这种所有用户都可以使用,普通用户也只能为自己设置计划任务。然后自动写入/var/spool/cron/usename

注释:

# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed


分 时 日 月 周 执行命令
第 1 列分钟 1~59,每分钟用 * 或者*/1表示,整点分钟数为00或0
第 2 列小时 1~23(0 表示 0 点)
第 3 列日 1~31
第 4 列月 1~12
第 5 列星期 0~6(0 表示星期天)
第 6 列 管理员 要运行的命令


*/1 * * * * root /home/mysql.sh 每分钟执行一次
或者
0 3 * * * /home/mysql.sh,此命令表示在每天的凌晨三点执行一次脚本,可自行调整时间
或者
0 3 * * * root /home/mysql.sh,此命令表示在每天的凌晨三点执行一次脚本,可自行调整时间


特殊字符介绍:
星号(*):代表每的意思,例如month字段如果是星号,则表示每月都执行该命令操作。
逗号(,):表示分隔时段的意思,例如,“1,3,5,7,9”。
中杠(-):表示一个时间范围,例如“2-6”表示“2,3,4,5,6”。
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

二、站点源码自动备份

1、添加/home/www.sh

#!/bin/bash

tar zcf /home/backup/www.tar.gz /home/www

2、设置权限

chmod 755 /home/www.sh

3、设置定时任务(每天23点开始备份)

crontab -e
0 23 * * * root /home/www.sh



linux应该都有crontab,没有的话可以安装一下:

yum install -y  vixie-cron

yum install -y crontabs

安装完以后开启crontab服务

systemctl start crond.service #启动服务

用以下的方法启动、关闭这个cron服务:

systemctl start crond.service #启动服务

systemctl reload crond.service #重新载入配置

systemctl status crond.service #查看crontab服务状态

systemctl enable crond.service #开机自启动