当前位置: 首页 > Linux

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

时间:2023-04-07 02:01:55 Linux

从阿里云买了一些最便宜的ECS(几百元/年,1GB内存,安装Debian),用Wordpress做一个小企业的官网,过一会会出现网页,如果打不开,会显示“建立数据库连接时发生错误”。原因是mysql挂了。一般解决方法:rebootservicemysqlstart网友提到wp_optionstable-repairtable-execution,修改wp-config。不运行就启动。crontab可以设置任务,定时执行某个脚本——比如,它也可以定时执行一个PHP文件;如果没有安装crontab,可以百度step1设置定时任务定时任务代码#每1分钟执行一次test.sh*/1****/var/www/test.sh以上5个星号依次代表:0-59分钟,0-23小时,某日1-31,某月1-12,0-6Sunday=0or7星期几,不管test.sh是什么,路径自定义添加以上代码到crontab文件方法一:修改root用户文件打开/etc/crontab文件,添加以上代码,保存注意:需要root权限方法二:修改普通用户文件(推荐)直接执行命令crontab-e通过ssh打开/var/spool/cron/crontabs/username文件(如果没有username,这个文件还是root)加入上面代码后按ctrl+X退出,提示是否保存,按Y,回车,会有提示:crontab:installingnewcrontab这个方法的好处:会检查crontabservicerestart/etc/init.d/cronrestartorservicecronrestart有没有报错也说不需要重启服务step2新建一个自定义任务/var/www/test.sh(我设置权限为755),刚才的crontab设置是每分钟执行一次这个test.sh#!/bin/bashpgrep-xmysqld&>/dev/nullif[$?-ne0]then/etc/init.d/mysqlstartelseecho"MySQLserverisrunning.权限不足,无法执行。设置这里查看执行状态(crontab执行日志)方法一:系统是否执行结果成功与否,在/var/spool/mail/mail文件中会有crontab执行日志记录,在/var/log/cron.log中,我在Debian中没有找到方法二:创建自定义日志/var/www/mysql_start.log(我将权限设置为555)并将test.sh更改为以下内容:#!/bin/bashpgrep-xmysqld&>/dev/nullif[$?-ne0]thenecho"Attime:`date`:MySQLisstop.">>/var/www/mysql_start.log/etc/init.d/mysqlstartelseecho"MySQLserverisrunning."fi和执行每分钟的状态都会被写入这个日志文件,