A-A+

Linux下定时运行SQL脚本

2018年09月18日 站点更新 暂无评论 阅读 5,304 次

环境:CentOS,MySQL。

第一步:创建一个reback.sh文件,文件内容如下:

  1. #!/bin/sh
  2. mysql -uroot -p123456 -Dmydb</mnt/source.sql

连接MySQL数据库,在mydb库内运行一段sql脚本,我是用来定时清理数据的。

第二步:通过chmod命令赋予该脚本的执行权限chmod 755 reback.sh,使用ls命令查看时,该文件名称显示为绿色即赋予权限成功。

第三步:设置crontab。执行以下命令:

  1. vim /etc/crontab

增加一行定时任务,如下:

  1. */30 * * * * root /mnt/reback.sh

上面的意思是:每隔30分钟,使用root账户,执行reback.sh一次。

第四步:重启cron服务。

  1. service crond restart

需要注意的:

1. cron相关命令

安装crontab:

  1. yum install crontabs

服务操作说明:

  1. service crond start //启动服务
  2. service crond stop //关闭服务
  3. service crond restart //重启服务
  4. service crond reload //重新载入配置
  5. service crond status //启动服务

查看crontab服务是否已设置为开机启动,执行命令:

  1. ntsysv

加入开机自动启动:

  1. chkconfig –level 35 crond on

2. 日志相关

如果命令没有执行成功,可以查看日志,日志在“/var/log/cron”下,可以看到:

  1. (root) MAIL (mailed 86 bytes of output but got status 0x004b#012)

具体的信息需要去查看邮件,如果不存在“cd /var/spool/mail/root”,可以使用如下命令启动服务试试:

  1. service postfix start

3. sh文件格式

一般都是在windows系统中编辑sh文件,然后拷贝至linux系统中,在定时执行的时候就会出现编码格式问题,可以使用vi或vim命令打开文件,然后输入以下命令查询文件编码格式:

  1. :set fileformat

使用如下命令设置文件编码格式:

  1. :set fileformat=unix
标签:

给我留言

Copyright © 字痕随行 保留所有权利.   Theme  Ality

用户登录

分享到: