Mac听写备份数据库高级篇[只需语音告诉mac进行备份,则自动完成备份操作,还可以说话]

发布时间:2018-05-25作者:laosun阅读(1192)

Mac听写备份数据库高级篇[只需语音告诉mac进行备份,则自动完成备份操作,还可以说话]

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文件。

    image.png

0 +1

版权声明

 Mac

 请文明留言

0 条评论