资讯专栏INFORMATION COLUMN

Linux(Debian)使用crontab设置定时任务

MasonEast / 3510人阅读

摘要:一般解决的方法网友提到的在表修复表执行,修改实际都无效现在,就是要设置一个定时任务每分钟检查一次是否运行如果没有运行,则启动。

买过一些阿里云最便宜的ECS(几百元/年,1GB内存,安装Debian),使用Wordpress做小企业官网

然后隔一段时间就会出现网页打不开,显示 “建立数据库连接时出错”。原因是mysql宕机了。

一般解决的方法:

reboot

service mysql start

网友提到的在wp_options表-修复表-执行,修改wp-config.php(实际都无效)

现在,就是要设置一个定时任务:每分钟检查一次mysql是否运行?如果没有运行,则启动。

crontab可以设置任务,定时执行某个脚本——比如也可以定时执行一个PHP文件;
如果没有安装crontab,可百度一下
step1 设置定时任务 定时任务代码
# 每隔 1 分钟执行一次 test.sh
*/1 * * * * /var/www/test.sh
上述 五个星号 按顺序依次代表:0-59分钟,0-23小时,1-31某一天,1-12某个月,0-6 Sunday=0 or 7 星期几

先别管test.sh是啥,路径自定义

将上面代码添加到crontab文件 方法1:修改root用户文件

打开 /etc/crontab 文件,添加上述代码,保存即可

注意:需要root权限
方法2:修改普通用户文件(建议)

直接ssh执行命令

crontab -e

会打开 /var/spool/cron/crontabs/username文件(如果没有username,这个文件还是root)

添加上述代码

按ctrl+X退出,提示是否保存,按Y,回车,会有提示:

crontab: installing new crontab
本方法的好处:会检查设置是否有错误
crontab 服务重启
/etc/init.d/cron restart

service cron restart
也有说不需要重启服务
step2 自定义任务

新建 /var/www/test.sh (我把权限设置755),刚才的crontab设置就是每分钟执行这个test.sh的

#!/bin/bash
pgrep -x mysqld &> /dev/null
if [ $? -ne 0 ]
then
    /etc/init.d/mysql start
else
    echo "MySQL server is running ."
fi
注意,如果把 /etc/init.d/mysql start 启动数据库命令改为:service mysql start ,则可能因为权限不够无法执行

到这里就设置好了

查看执行情况(crontab执行日志) 方法1:系统自带

执行结果不论是否成功,都会在 /var/spool/mail/mail文件中有crontab执行日志的记录

另外说在/var/log/cron.log有,我在Debian中没找到

方法2:自定义日志

新建 /var/www/mysql_start.log(我把权限设置555)

把test.sh改成如下:

#!/bin/bash
pgrep -x mysqld &> /dev/null
if [ $? -ne 0 ]
then
    echo "At time: `date`: MySQL is stop .">> /var/www/mysql_start.log
    /etc/init.d/mysql start
else
    echo "MySQL server is running ."
fi

然后每分钟的执行情况,都会写入这个日志文件,

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/63322.html

相关文章

  • Linux定时任务crontab

    摘要:表示小时,可以是从到之间的任何整数。时间间隔的单位可以是分钟小时日月周及以上的任意组合。是命令文件的名字表示将做为的任务列表文件并载入。如果修改了某些条目或添加了新的条目,那么在保存该文件时,会对其进行必要的完整性检查。 一、简介 crond是Linux下用来周期执行某种任务或等待处理某些事件的一个守护进程,当安装完成操作系统后,默认会安装此项服务,并且会自动启动crond进程,cro...

    李涛 评论0 收藏0
  • Linux 下执行定时任务 crontab 命令详解

    摘要:安装与配置服务安装服务操作说明启动服务关闭服务重启服务重新载入配置查看服务状态手动启动服务查看服务是否已设置为开机启动,执行命令加入开机自动启动 许多内容抄录自自 竹子的博客 1、先来一个小小的例子 查看当前路径: [root@root test]# pwd /home/admin/test [root@root test]# crontab -l 查看当前用户的定时任务 ...

    QiuyueZhong 评论0 收藏0
  • Linux 下执行定时任务 crontab 命令详解

    摘要:安装与配置服务安装服务操作说明启动服务关闭服务重启服务重新载入配置查看服务状态手动启动服务查看服务是否已设置为开机启动,执行命令加入开机自动启动 许多内容抄录自自 竹子的博客 1、先来一个小小的例子 查看当前路径: [root@root test]# pwd /home/admin/test [root@root test]# crontab -l 查看当前用户的定时任务 ...

    TigerChain 评论0 收藏0
  • linux定时任务设置

    摘要:命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。对于不指定的字段,要用来填补其位置。 linux定时任务的设置为当前用户创建cron服务 1. 键入 crontab -e 编辑crontab服务文件 例如 文件内容如下: */2 * * * * /bin/sh /home/admin/jiaoben/buy/deleteFile.sh 保存文件并...

    solocoder 评论0 收藏0
  • 如何设定一个定时任务

    摘要:定时任务在开发中是非常常见的一个需求,定时检测过期优惠券定时重启刷新缓存备份数据等等都可以用到定时任务。定义方式在下定义一个定时任务有两种方式,一个是直接修改文件,还有一个是通过命令来编辑任务文件。 定时任务在开发中是非常常见的一个需求,定时检测过期优惠券、定时重启、刷新缓存、备份数据等等都可以用到定时任务。在 Linux 上一般都是通过 crontab 来实现一个定时任务,这个是基于...

    muzhuyu 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<