创建 mysqlbak.sh脚本文件,对数据库进行备份
#!/bin/bash
base="/Users/xingxing/Documents/mysql/data"
date=$(date +%Y%m%d)
hour=$(date +%H)
time=$(date +%H%M%S)
charset="UTF8"
username="root"
password="root"
database="qiaoqiao2"
filename="$database.$date$time.sql"
cd $base
if [ ! -d $date ]
then
mkdir ./$date
fi
dir="./$date/$date$hour"
if [ ! -d $dir ]
then
mkdir $dir
fi
path="$base/$dir"
/usr/local/mysql/bin/mysqldump -u$username -p$password --opt --default-character-set=$charset -q $database > $path/$filename
cd $path
tar zcf ./$filename.tar.gz ./$filename
rm -r ./$filename
打开终端窗口,将.sh文件直接拖入到终端窗口,点击回车,一般会报“Permission denied”的错误,这是因为没有权限。解决方法是在终端中运行如下的命令,修改文件的权限:
chmod 777 /Users/xingxing/Documents/mysql/mysqlbak.sh
然后设置让系统定时执行该脚本文件。
crontab是linux上执行定时任务的工具(MacOS和linux都是unix的变种系统,所有linux上可执行的指令大多数Mac上也可以执行)
使用方法
打开终端
crontab -e //编辑crontab任务,保存退出后自动加到crontab列表中执行
crontab -l //查看所有crontab 列表
crontab -r //删除用户目前的crontab.
文件编辑基本格式 :
* * * * * command
分 时 日 月 周 命令
例子:
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
//表示每晚的21:30重启apache。
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
//表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。
* */1 * * * /usr/local/etc/rc.d/lighttpd restart
//每一小时重启apache