Crontab示例

时间:2020-02-23 14:37:59  来源:igfitidea点击:

今天,我们将研究crontab示例,该示例每5分钟执行一次脚本。

Crontab示例

最近,我在CentOS操作系统上安装了memcached服务器,以用作我的VBulletin论坛的缓存机制。
为了确保它始终运行,我编写了一个Shell脚本来检查进程状态,如果没有运行则重新启动。
现在,要确保该脚本以特定的间隔执行,我使用了crontab

Crontab示例Shell脚本

Shell脚本是可扩展的,您可以编写类似的脚本来重新启动UNIX系统中的任何服务或者进程。

这是我的crontab示例中使用的自动重启服务的Shell脚本。

memcached_restart.sh

#!/bin/bash
ps -eaf | grep 11211 | grep memcached
# if not found - equals to 1, start it
if [ $? -eq 1 ]
then
/usr/local/bin/memcached -d -u nobody -p 11211 -U 11211 -l 127.0.0.1
else
echo "eq 0 - memcached running - do nothing"
fi

该脚本中的主要命令是检查进程,将" ps"命令与grep一起使用以确保它仅返回所需的服务,并且如果该服务未运行则不返回任何内容。

一旦提出要使用的命令,那么唯一的事情就是发出启动命令来运行该服务。

在使用crontab将脚本设置为定期运行之前,请对其进行测试以确保其正常运行。

每5分钟Crontab示例

完成脚本后,您需要设置一个cron作业以定期执行此脚本。
我使用下面的条目每5分钟运行一次此脚本。

*/5 * * * * /Users/pankaj/Downloads/memcached_restart.sh > /Users/pankaj/Downloads/memcache_restart.log 2>&1

Crontab错误–找不到命令

Crontab Error – command not found

请注意,crontab不考虑诸如PATH之类的环境变量,因此您必须始终为任何程序或者目录位置提供绝对路径。
如果在crontab shell脚本中运行命令时遇到"找不到命令"错误,并且如果您自己执行该命令也可以正常运行,那么使用相对路径将成为问题。