crontab如何生效(linux下env环境变量引起的crontab不生效解决办法)

2025-12-29 17:30:02 0

crontab如何生效(linux下env环境变量引起的crontab不生效解决办法)

今天给各位分享linux下env环境变量引起的crontab不生效解决办法的知识,其中也会对linux下env环境变量引起的crontab不生效解决办法进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录

linux下env环境变量引起的crontab不生效解决办法

crontab是linux中一个定时任务功能了,但是小编使用env环境变量之后迫害前的任务计划没效了,下面我们来看看如何解决env环境变量引起的crontab不生效问题.
有朋友说,他写了一个脚本来做计划任务定时备份数据库,但却一直都备份不成功,手动执行脚本也没有问题,而且在/var/log/cron日志里看到成功执行了,但就是没看到备份的数据库文件。
拿了ssh权限,登录之后,看了之后,和他所说的情况一样,脚本执行成功,但没有生成备份。
不过,查了一下发给root的邮件,看到了问题:
  Return-Path: root@test.com
  X-Original-To: root
  Delivered-To: root@test.com
  From: root@test.com (Cron Daemon)
  To: root@test.com
  Subject: Cron root@test sh /data/cron/backup.sh
  Content-Type: text/plain; charset=UTF-8
  Auto-Submitted: auto-generated
  X-Cron-Env: LANG=en_US.UTF-8
  X-Cron-Env: SHELL=/bin/sh
  X-Cron-Env: HOME=/root
  X-Cron-Env: PATH=/usr/bin:/bin
  X-Cron-Env: LOGNAME=root
  X-Cron-Env: USER=root
  Date: Tue,  1 Apr 2014 10:58:01 -0400 (EDT)
  Status: R
/data/cron/backup.sh: line 27: mysql: command not found
从上面可以看到,说mysql命令没有找到,于是执行了一下命令:
# echo $PATH
  /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/nginx/sbin:/usr/local/mysql/bin
这样就知道了问题所在,在crontab里的执行环境变量与root用户设置的环境变量不一致,从上面两个可以看出区别:
  crontab里的环境变量:X-Cron-Env: PATH=/usr/bin:/bin
root用户的环境变量:
  PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/nginx/sbin:/usr/local/mysql/bin
现在我们已经知道了,mysql这个命令是放在/usr/local/mysql/bin下面,而crontab的PATH变量中却没有这一条,所以出现mysql: command not found的问题。
同时,我们可以新建一个脚本,在crontab里验证一下PATH变量:
  # vi path.sh
  #!/bin/bash
echo $PATH
# 保存后,加入到crontab
# crontab -e
   */1 * * * * /data/path.sh
1分钟后,可以看到:
/usr/bin:/bin
知道了问题,那就好解决了,有两种:
1. 在备份脚本里,手动设置一下,例如:
#!/bin/bash
. /etc/profile
....余下内容...
  这里需要“. /etc/profile”,是因为朋友的mysql是自己编译的,把mysql的路径都添加到这里:
  PATH=$PATH:$HOME/bin:/usr/local/nginx/sbin:/usr/local/mysql/bin
  export PATH
2. 直接设置用户的crontab,添加路径/usr/local/mysql/bin,例如:
  # crontab -e
  SHELL=/bin/bash
  PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/nginx/sbin:/usr/local/mysql/bin:/root/bin
  MAILTO=root
  HOME=/
0 */12 * * * sh /data/cron/backup.sh
保存之后,就可以正常备份了。
另外可以了解一个文件/etc/crontab:
  # cat /etc/crontab
  SHELL=/bin/bash
  PATH=/sbin:/bin:/usr/sbin:/usr/bin
  MAILTO=root
  HOME=/
# For details see man 4 crontabs
# Example of job definition:
  # .---------------- minute (0 - 59)
  # |  .------------- hour (0 - 23)
  # |  |  .---------- day of month (1 - 31)
  # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
  # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
  # |  |  |  |  |
  # *  *  *  *  * user-name command to be executed

如何用crontab每5分钟执行一次

一、创建存放shell脚本的文件夹
# mkdir shell
二、编写shell脚本
使用vim、nano、vi等任意文本工具,都可以编写shell脚本。使用“nano test.sh”在当前目录下,创建一个测试shell脚本。shell脚本的后缀习惯性写成“.sh”。
# vim getdata.sh
脚本内容:
#!/bin/sh
Datetime=$(date "+%Y-%m-%d %H:%M:%S")
filelog="/data/shell/std.log"
exec 3《 /data/shell/server.cfg
echo "#######################START############################" 》》
$filelog
while read server 《&3
do
echo "" 》》 $filelog
echo "》》$Datetime , updategetdata -》 $server~" 》》 $filelog
***隐藏网址***
if ;then
echo "》》$Datetime , update getdata success -》 $server~" 》》 $filelog
else
echo "》》$Datetime , updategetdata failed -》 $server~" 》》 $filelog
fi
echo "" 》》 $filelog
echo "" 》》 $filelog
done
echo "############################END#######################" 》》
$filelog
保存退出:wq! 即可生成shell文件 getdata.shell。
三、对shell脚本添加执行权限。
# chmod 755 getdata.sh
由于新建的shell脚本没有执行权限,首先使用“chmod 755 getdata.sh。
四、创建shell脚本依赖的文件
# vim server.cfg (添加接口用到ip号集合)。
格式:
ip
ip
........
# vim std.log
六、执行脚本测试
# ./getdata.sh
七、添加到定时任务
# crontab -e (编写后保存即可生效)。
举例:每5分钟执行一次
*/5 * * * * /bin/bash /data/shell/getdata.sh 》/dev/null 2》&1
八、查看是否添加进去
#crontab -l 。
1.crontab参数
-u:这个参数可以让我们去其他人的crontab,如果没有加上这个参数的话就会开启自己的crontab
crontab -u 使用者名称
-l:可以列出crontab的内容
-r:可以移除crontab
-e:可以使用系统预设的器,开启crontab
-i:可以移除crontab,会跳出系统信息让你再次确定是否移除crontab
2.crontab时间格式说明
minute(分)可以设置0-59分
hour(小时)可以设置0-23小时
day of month(日期)可以设置1-31号
month(月份):可以设置1-12月
day of week(星期):可以设置0-7星期几,其中0和7都代表星期天,或者我们也可以使用名称来表示星期天到星期一,例如sun表示星期天,mon表示星期一等等
3.crontab时间格式范例
1-3表示123
1-9/2表示13579
4.crontab范例
每五分钟执行 */5 * * * *
每小时执行 0 * * * *
每天执行 0 0 * * *
每周执行 0 0 * * 0
每月执行 0 0 1 * *
每年执行 0 0 1 1 *
5.介绍crontab文件
/etc/crontab
在这个文件里并没有记录系统要执行哪些工作,而是记录了下面四个子目录。
/etc/cron.hourly
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly
这些子目录里存放了一些脚本,到了crontab所指定的时间点,系统就会去执行这些子目录里的脚本。
参考资料
crontab命令详解 .CSDN博客
定时任务(每5分钟执行一次各机房访问接口).CSDN博客

crontab 如何立即执行

* * * * * /bin/date 》》/tmp/date.txt
* * * * * sleep 10; /bin/date 》》/tmp/date.txt
* * * * * sleep 20; /bin/date 》》/tmp/date.txt
* * * * * sleep 30; /bin/date 》》/tmp/date.txt
* * * * * sleep 40; /bin/date 》》/tmp/date.txt
* * * * * sleep 50; /bin/date 》》/tmp/date.txt

每十秒执行,过十秒没看到结果就说明出错了。

另外,可以在脚本里面写一个保存时间到文件,这样就可以测试准确性了。

crontab里面并没有直接执行的命令。

Linux crontab 命令解释-实例

  当安装完成操作系统之后,默认便会启动此任务调度命令。
  crond 命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。
   注意: 新创建的 cron 任务,不会马上执行,至少要过 2 分钟后才可以,当然你可以重启 cron 来马上执行。
  而 linux 任务调度的工作主要分为以下两类:
  1、系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
  2、个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置

  每一分钟执行一次 /bin/ls:

  或者

  在 12 月内, 每天的早上 6 点到 12 点,每隔 3 个小时 0 分钟执行一次 /usr/bin/backup:

  周一到周五每天下午 5:00 寄一封信给 alex@domain.name:

  每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha":

  或者

  每天 20点10分 执行 接口 并将接口输入信息写入video3_semiao.log 日志中

   注意: 当程序在你所指定的时间执行后,系统会发一封邮件给当前的用户,显示该程序执行的内容,若是你不希望收到这样的邮件,请在每一行空一格之后加上 》 /dev/null 2》&1 即可,如:

  每10秒执行一下脚本 通过sleep 休眠达到一分钟分割的目的

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

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

***隐藏网址***

linux怎么修改crontab

1、首先,连接相应linux主机,进入到linux命令行状态下,等待输入shell指令。

2、在linux命令行下输入shell指令:crontab -e。

3、最后,按下回车键执行shell指令,此时会成功进入crontab的模式。

crontab-e不生效

可以试试这个方法: 在命令行输入如下命令: crontab -e 回车,进入定时任务界面,按下“i”键,进入模式,输入如下内容:

* * * * * echo "111111111111"》》/tmp/test.txt 按下“esc”键退出模式,并输入“:wq”保存并退出 此时继续在命令行下输入如下命令: cat /tmp/test.txt 每过一分钟,执行一下上边的命令,发现不断有内容写入,说明定时任务执行了。

如何启动crontab

cron服务是Linux的内置服务,但它不会开机自动启动。可以用以下命令启动和停止服务:
/sbin/service crond start
/sbin/service crond stop
/sbin/service crond restart
/sbin/service crond reload
以上1-4行分别为启动、停止、重启服务和重新加载配置。
要把cron设为在开机的时候自动启动,在 /etc/rc.d/rc.local 脚本中加入 /sbin/service crond start 即可
查看当前用户的crontab,输入 crontab -l;
crontab,输入 crontab -e;
删除crontab,输入 crontab -r

关于crontab如何生效和linux下env环境变量引起的crontab不生效解决办法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

crontab如何生效(linux下env环境变量引起的crontab不生效解决办法)

本文编辑:admin

更多文章:


wireshark没有找到接口(我在windows xp上安装了wireshark软件,结果提示There are no interfaces on which a capture can be done)

wireshark没有找到接口(我在windows xp上安装了wireshark软件,结果提示There are no interfaces on which a capture can be done)

本篇文章给大家谈谈wireshark没有找到接口,以及我在windows xp上安装了wireshark软件,结果提示There are no interfaces on which a capture can be done对应的知识点,

2025年7月31日 03:30

结束正在运行的程序快捷键(电脑关闭程序快捷键 都有哪些呢)

结束正在运行的程序快捷键(电脑关闭程序快捷键 都有哪些呢)

“结束正在运行的程序快捷键”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看结束正在运行的程序快捷键(电脑关闭程序快捷键 都有哪些呢)!本文目录电脑关闭程序快捷键 都有哪些呢在电脑上结束任务的快捷键是什么(按哪个键结束程序)电

2025年7月3日 03:45

零基础学php培训(昌平IT培训分享学PHP想快点学会要怎么办)

零基础学php培训(昌平IT培训分享学PHP想快点学会要怎么办)

大家好,如果您还对零基础学php培训不太了解,没有关系,今天就由本站为大家分享零基础学php培训的知识,包括昌平IT培训分享学PHP想快点学会要怎么办的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录昌平IT培训分享

2025年12月27日 23:30

维吉尼亚密码怎么用(令n=26,s=4,密钥k=QEGD,明文串M=computer,用维吉尼亚密码体制对M加密)

维吉尼亚密码怎么用(令n=26,s=4,密钥k=QEGD,明文串M=computer,用维吉尼亚密码体制对M加密)

“维吉尼亚密码怎么用”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看维吉尼亚密码怎么用(令n=26,s=4,密钥k=QEGD,明文串M=computer,用维吉尼亚密码体制对M加密)!本文目录令n=26,s=4,密钥k=QE

2026年4月2日 23:45

化妆品入库表单模板(出库单和入库单怎么弄的表格)

化妆品入库表单模板(出库单和入库单怎么弄的表格)

本篇文章给大家谈谈化妆品入库表单模板,以及出库单和入库单怎么弄的表格对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录出库单和入库单怎么弄的表

2025年10月8日 14:30

下载php的软件(php开发软件有哪些(php用什么软件))

下载php的软件(php开发软件有哪些(php用什么软件))

这篇文章给大家聊聊关于下载php的软件,以及php开发软件有哪些(php用什么软件)对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录php开发软件有哪些(php用什么软件)php开发软件有哪些php项目开发用什么软件学php要

2025年9月22日 21:15

isnull()方法的作用(sqlserver中isnull(@RecIndex,’’) <> ’’是什么意思)

isnull()方法的作用(sqlserver中isnull(@RecIndex,’’) <> ’’是什么意思)

其实isnull()方法的作用的问题并不复杂,但是又很多的朋友都不太了解sqlserver中isnull(@RecIndex,’’) ’’是什么意思,因此呢,今天小编就来为大家分享isnull()方法的作用的一些知识,希望可以帮助到大家,

2026年7月2日 14:45

永久免费个人网站申请注册w(如何注册免费网站)

永久免费个人网站申请注册w(如何注册免费网站)

本篇文章给大家谈谈永久免费个人网站申请注册w,以及如何注册免费网站对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录如何注册免费网站个人网站有

2025年11月22日 18:00

constructed environment翻译(翻译下面这段文字)

constructed environment翻译(翻译下面这段文字)

各位老铁们,大家好,今天由我来为大家分享constructed environment翻译,以及翻译下面这段文字的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始

2025年9月26日 03:00

interface如何读(请教几个英文怎么读)

interface如何读(请教几个英文怎么读)

其实interface如何读的问题并不复杂,但是又很多的朋友都不太了解请教几个英文怎么读,因此呢,今天小编就来为大家分享interface如何读的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录请教几个英文怎么读r

2025年12月2日 14:30

广州中小企业网站制作(怎么做中小企业网站呢)

广州中小企业网站制作(怎么做中小企业网站呢)

其实广州中小企业网站制作的问题并不复杂,但是又很多的朋友都不太了解怎么做中小企业网站呢,因此呢,今天小编就来为大家分享广州中小企业网站制作的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录怎么做中小企业网站呢我想建

2026年6月10日 16:15

spite词组(in spite of中spite是恶意,为什么变成短语是尽管的意思)

spite词组(in spite of中spite是恶意,为什么变成短语是尽管的意思)

各位老铁们好,相信很多人对spite词组都不是特别的了解,因此呢,今天就来为大家分享下关于spite词组以及in spite of中spite是恶意,为什么变成短语是尽管的意思的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看

2025年9月18日 03:45

mvc模式和责任链(网站开发模式除了MVC外还有什么)

mvc模式和责任链(网站开发模式除了MVC外还有什么)

这篇文章给大家聊聊关于mvc模式和责任链,以及网站开发模式除了MVC外还有什么对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录网站开发模式除了MVC外还有什么软件设计模式主要有哪几种mvc开发模式java 除了mvc设计模式

2025年9月13日 21:00

quadrature(quadrature中文翻译)

quadrature(quadrature中文翻译)

大家好,今天小编来为大家解答以下的问题,关于quadrature,quadrature中文翻译这个很多人还不知道,现在让我们一起来看看吧!本文目录quadrature中文翻译quadrature rule的定义 请问什么是quadratur

2025年11月21日 16:00

datagridview动态添加列(在DataGridView中动态添加combox列)

datagridview动态添加列(在DataGridView中动态添加combox列)

各位老铁们,大家好,今天由我来为大家分享datagridview动态添加列,以及在DataGridView中动态添加combox列的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家

2026年7月18日 09:00

web服务器控件不包括(web用户控件 的优点和缺点在哪里)

web服务器控件不包括(web用户控件 的优点和缺点在哪里)

大家好,如果您还对web服务器控件不包括不太了解,没有关系,今天就由本站为大家分享web服务器控件不包括的知识,包括web用户控件 的优点和缺点在哪里的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录web用户控件

2026年4月12日 16:45

字符串strtok(c语言:如何把字符串分解为一个个的字符)

字符串strtok(c语言:如何把字符串分解为一个个的字符)

其实字符串strtok的问题并不复杂,但是又很多的朋友都不太了解c语言:如何把字符串分解为一个个的字符,因此呢,今天小编就来为大家分享字符串strtok的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录c语言:如何

2025年8月24日 22:45

国内军事新闻(中国最新军事新闻)

国内军事新闻(中国最新军事新闻)

大家好,如果您还对国内军事新闻不太了解,没有关系,今天就由本站为大家分享国内军事新闻的知识,包括中国最新军事新闻的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录中国最新军事新闻关于战争的国内新闻深圳卫视军情直播间播

2025年10月18日 16:30

forks翻译(刀叉的英文怎么说)

forks翻译(刀叉的英文怎么说)

其实forks翻译的问题并不复杂,但是又很多的朋友都不太了解刀叉的英文怎么说,因此呢,今天小编就来为大家分享forks翻译的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录刀叉的英文怎么说亲人怎么翻译英语高手请进,

2026年6月2日 19:15

echo和printf的区别(bash下echo和print的区别在哪里)

echo和printf的区别(bash下echo和print的区别在哪里)

今天给各位分享bash下echo和print的区别在哪里的知识,其中也会对bash下echo和print的区别在哪里进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录bash下echo和print的区别在哪里PH

2026年9月22日 22:45

近期文章

本站热文

electronics软件(labcenter electronics是什么软件)
2025-05-22 23:45:02 浏览:134
博客是微博吗(博客是微博吗)
2025-05-22 22:45:01 浏览:111
diversity and distribution(悬赏英语短文)
2025-05-23 16:15:02 浏览:107
ios软件开发前景(iOS就业前景怎么样)
2025-05-22 23:00:01 浏览:102
next month(有The next month这个单词吗,和 next month有什么区别)
2025-05-23 02:30:01 浏览:102
patron(patron是什么意思)
2025-05-23 10:30:02 浏览:95
标签列表

热门搜索