Linux配置定时crontab及环境变量

本文详细介绍了如何在Linux中配置crontab定时任务,包括执行方法、定时含义,以及如何处理环境变量问题。同时,讨论了不同级别的环境变量设置,如系统级的/etc/profile和/etc/environment,以及用户级的~/.profile和~/.bashrc等。通过正确配置环境变量,确保crontab脚本能够顺利执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、linux配置定时crontab
1、执行方法
  a、crontab –e : 修改 crontab 文件,如果文件不存在会自动创建。
  b、10 0 * * * . ./.bash_profile;sh /home/zjtxjb_scp1/etc/shell/x.sh
  c、crontab -l:显示 crontab 文件,查看定时配置。
2、定时含义(参考附件crontab格式说明)* * * * * 五个参数依次代表的含义分、时、日、月、星期。
3、秒级定时任务执行采取sleep方式,执行的时间间隔要能被60整除,如下例子。也可以把sleep命令写进程序中然后引入程序。
例如:
程序每10s执行一次
* * * * * . ./.bash_profile;sh /home/zjtxjb_scp1/etc/shell/x.sh
* * * * * sleep 10; . ./.bash_profile;sh /home/zjtxjb_scp1/etc/shell/x.sh
* * * * * sleep 20; . ./.bash_profile;sh /home/zjtxjb_scp1/etc/shell/x.sh
* * * * * sleep 30; . ./.bash_profile;sh /home/zjtxjb_scp1/etc/shell/x.sh
* * * * * sleep 40; . ./.bash_profile;sh /home/zjtxjb_scp1/etc/shell/x.sh
* * * * * sleep 50; . ./.bash_profile;sh /home/zjtxjb_scp1/etc/shell/x.sh
程序每5s执行一次
* * * * * . ./.bash_profile;sh /home/zjtxjb_scp1/etc/shell/x.sh
* * * * * sleep 5 . ./.bash_profile;sh /home/zjtxjb_scp1/etc/shell/x.sh
* * * * * sleep 10; . ./.bash_profile;sh /home/zjtxjb_scp1/etc/shell/x.sh
* * * * * sleep 15; . ./.bash_profile;sh /home/zjtxjb_scp1/etc/shell/x.sh
* * * * * sleep 20; . ./.bash_profile;sh /home/zjtxjb_scp1/etc/shell/x.sh
* * * * * sleep 25; . ./.bash_profile;sh /home/zjtxjb_scp1/etc/shell/x.sh
* * * * * sleep 30; . ./.bash_profile;sh /home/zjtxjb_scp1/etc/shell/x.sh
* * * * * sleep 35; . ./.bash_profile;sh /home/zjtxjb_scp1/etc/shell/x.sh
* * * * * sleep 40; . ./.bash_profile;sh /home/zjtxjb_scp1/etc/shell/x.sh
* * * * * sleep 45; . ./.bash_profile;sh /home/zjtxjb_scp1/etc/shell/x.sh
* * * * * sleep 50; . ./.bash_profile;sh /home/zjtxjb_scp1/etc/shell/x.sh
* * * * * sleep 55; . ./.bash_profile;sh /home/zjtxjb_scp1/etc/shell/x.sh
4、crontab环境变量问题:crontab总是不会缺省的从用户profile文件中读取环境变量参数,经常导致在手工执行某个脚本时是成功的,但是到crontab中试图让它定期执行时就是会出错。2种方法可以解决这个问题,主要是让环境变量在crontab中被定义
  a、在Shell文件里面获取环境变量值的路径写成绝对路径,别用环境变量的路径值。
  b、Shell脚本缺省的#!/bin/sh开头换行后的第一行用(前提是profile和.bash_profile分别存在需要的路径配置)
     #!/bin/sh
     . /etc/profile
     . ~/.bash_profile
  只有crontab在执行脚本的时候能够读到用户的环境变量参数,才能保证定时能正常被执行。

2、关于linux环境变量
系统级:
  (1)/etc/profile:该文件是用户登录时,操作系统定制用户环境时使用的第一个文件,应用于登录到系统的每一个用户。该文件一般是调用/etc/bash.bashrc文件。
/etc/bash.bashrc:系统级的bashrc文件。
  (2)/etc/environment:在登录时操作系统使用的第二个文件,系统在读取你自己的profile前,设置环境文件的环境变量。
用户级(这些文件处于家目录下)
  (1)~/.profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。这里是推荐放置个人设置的地方
  (2)~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。不推荐放到这儿,因为每开一个shell,这个文件会读取一次,效率肯定有影响。
  (3)~/.bash_profile or ~./bash_login当这个文件存在时,在登录shell时会读取./bash_profile文件,而不是.profile文件。我认为该文件实现的目的 跟.profile文件是一样的,当查找的资料中需要你修改.bash_profile文件,但却你没有该文件的时候,也可以修改.profile来完成 实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值