linux:使用crontab设置定时任务时报: elasticdump: command not found。crontab使用记录。

使用crontab设置定时任务时报: elasticdump: command not found。crontab使用记录。

记录:手动执行脚本时可以执行,当使用crontab(定时任务)时报错: elasticdump: command not found。
环境变量当时自己是配置好的,那为什么会报这个错呢?

1.crontab的安装部署

yum install vixie-cron 
yum install crontabs
注:vixie-cron软件包是cron的主程序;
crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。
cron是linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:
service crond start #启动服务
service crond stop #关闭服务
service crond restart #重启服务
service crond reload #重新载入配置

2.脚本无法执行问题

如果我们使用 crontab 来定时执行脚本,无法执行,但是如果直接通过命令(如:./test.sh)又可以正常执行,这主要是因为无法读取环境变量的原因。
解决方法(三种):
第一种:将所有命令需要写成绝对路径形式。
第二种:在 shell 脚本开头使用以下代码:

#!/bin/sh
 
. /etc/profile
. ~/.bash_profile

第三种:在 /etc/crontab 中添加环境变量,在可执行命令之前添加命令 . /etc/profile;/bin/sh,使得环境变量生效,例如:

20 03 * * * . /etc/profile;/bin/sh /opt/module/test.sh

3.Crontab默认调度任务:

cron默认配置了调度任务,分别为:hourly、daily、weekly、mouthly,默认配置文件为/etc/anacrontab
将需要执行的脚本放到相应的目录下即可,目录分别为:

/etc/cron.hourly
/etc/cron.daily
/etc/cron.weekly
/ect/cron.mouthly

4.Crontab命令在线验证工具:

crontab执行时间计算 - 在线工具

你可能感兴趣的:(运维工作,linux,crontab,定时任务)