mac上 mysql数据库自动备份

创建 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值