发布时间:2018-05-25作者:laosun阅读(2209)
Mac备份数据库高级篇;使用mac听写接收语音,我们告诉mac备份数据库,mac识别后则调用我们提前设定好的appleacript,applescript则进行一连串的shell操作。现在我们来说一下如果用mac的shell来备份线上数据库,并且覆盖更新本地数据库,期间还可以说话哦。涉及知识点:shell操作mysql数据库
最近研究mac听写有点上瘾了,也发现自己越来越懒了,连备份数据库都懒的操作。
首先我们启用mac听写,说一句,《电脑开始听写》
启动听写后,接着说《备份线上数据库》
那么mac就会帮你完成一系列的操作,比如:先从远程下载数据库到本地,然后紧接着执行覆盖更新本地数据库,最后再更新一系列的sql语句。不可思议,没有动手,仅仅是说了一句话,mac就帮你完成了这么多事。
这里就不介绍怎么开启mac听写了, 我发过这种文章。
看步骤吧:
首先我们需要些一个sh可执行文件。
say '数据库下载中,请稍后' date=`date +%Y-%m-%d` /usr/local/mysql/bin/mysqldump -h 【远程IP】 --single-transaction --ignore-table=【数据库】.【表名】 -u 【数据库账号】 -p【数据库密码】 【数据库】 >/Users/sun/Documents/database/【表名】_$date.sql if [ $? -eq 0 ]; then say '下载完成,开始覆盖本地数据库' /usr/local/mysql/bin/mysql -u root -proot 【表名】 </Users/sun/Documents/database/【表名】_$date.sql if [ $? -eq 0 ]; then #操作完成后更新某个表 update_cron4j_sql="update t_cron4j set stu=0" /usr/local/mysql/bin/mysql -u root -proot d_sunjs -e "${update_cron4j_sql}" update_settings_global_sql="update t_settings_global sg set sg.value='no' where sg.key in ('xxx','xxx');" /usr/local/mysql/bin/mysql -u root -proot 【表名】 -e "${update_settings_global_sql}" say '操作已完成' else say '覆盖本地数据库失败' fi else say '数据库下载失败' fi
上边设计的大部分隐私内容我都换成【】,根据自己的情况进行替换。还有几个需要注意的地方:就是Mysql和mysqldump所在的位置,还有导入导出的目录,这个都需要自己更换,我在最后步骤也留了两个sql,作为例子吧。不需要就删除掉,shell中执行mysql操作,并且不需要登录和use等操作,就是上边这种写法。
好了,言归正传:将上边的文件保存为:mysql_backip.sh。
并且给这个文件可执行权限。
chmod 755 mysql_backup.sh
然后我们创建applescript
set fileInfo to do shell script " /Users/sun/Documents/workspace/workspace/robot/applescript/mysql_backup.sh "
写入上边这话即可,保存到一个目录下。注意里边的sh路径转成你的。
然后打开mac偏好设置-->辅助功能-->听写-->点击听写命令
创建一条:
如下所示:选择其他,选择刚才保存的scpt文件。
版权属于: 技术客
原文地址: https://www.sunjs.com/article/detail/537e1124256e47fabaa78064d1861eca.html
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
关键字: Mac