在向cron进程提交一个crontab文件之前,必须配置环境变量EDITOR。cron进程根据它来确定使用哪个编辑器编辑cron文件。在UNIX和Linux用户都使用vi,如果你也是这样,那么你就编辑$HOME目录下的.profile文件,在其中加入这样一行:
EDITOR=vi ;export EDITOR

  你必须保证$PATH目录中有vi编辑器,通过使用which vi来检查vi所在的目录,如果没有找到vi,那么你必须手动配置一个.

在/home/scada/目录下有一个脚本test,内容为:
#!/bin/sh
echo `date` >> /home/scada/11.txt

1. 如何配置脚本每隔1分钟运行一次?
   #调用crontab -e 编辑,编辑内容为:
   0-59 * * * * /home/scada/test
#  */2 * * * *  /home/scada/text
2. 如何配置脚本每隔5分钟执行一次?
   #调用crontab -e 编辑,编辑内容为:
   0-59/5 * * * * /home/scada/test
3. 配置为: 0,1 * * * * /home/scada/test是什么意思?
   它表示每小时运行两次(整点及整点后两分钟)
4. 如何在crontab中使用全局变量?
   有一个全局变量,在$home/.bash_profile文件中定义。定义为:
   export TESTTMP=/home/scada
   在crontab中执行的脚本如何获取这个变量呢?
   把脚本内容改为:
   #!/bin/sh
   #filename:test
   echo $TESTTMP >> /home/scada/11.txt
   配置为一分钟运行一次,查看结果。发现文件/home/scada/11.txt中的内容为空,没有获取到$TESTTMP的数据,这是因为通过调用crontab调用脚本不会包含当前用户中的各种环境变量的设置,必须在脚本前设置好环境变量,而设置环境变量的方法可以使用source命令。因此正确的脚本调用为:
   #!/bin/sh
   #filename:test
   #source /home/scada/.bash_profile
   #switch the userpath
   cd ~
   userpath=`pwd`
   source ${userpath}/.bash_profile
   echo ${TESTTMP} >> /home/scada/11.txt

#echo $TESTTMP  >> /home/scada/11.txt  #不用打括号围起来也可以

或者通过crontab -e 编辑调度文件的时候,直接在里面制定全局变量,如下所示:
TESTTMP=/home/scada
0-59 * * * * /home/scada/test

Logo

更多推荐