1 编写crontab文件,设定启动时间,执行脚本

监控crontab执行的脚本 crontab 运行脚本_环境变量

 

2 第三方软件所需的环境变量

  (1) crontab启动命令

监控crontab执行的脚本 crontab 运行脚本_符号链接_02

  (2) shell脚本内容

监控crontab执行的脚本 crontab 运行脚本_符号链接_03

  PATH定义了命令行输入命令的搜索路径,因此将python命令的安装路径放入PATH变量中。

  export命令 用于将shell变量输出为环境变量,或者将shell函数输出为环境变量。

source命令 在当前Shell环境中从指定文件读取和执行命令,命令返回退出状态。

 


  source filename 与 sh filename 及./filename执行脚本的区别在那里呢?
  1.当shell脚本具有可执行权限时,用sh filename与./filename执行脚本是没有区别得。./filename是因为当前目录没有在PATH中,所有"."是用来表  示当前目录的。 
  2.sh filename 重新建立一个子shell,在 子shell中执行脚本里面的语句,该子shell继承父shell的环境变量,但子shell新建的、改变的变量不会被带  回父shell,除非使用export。
  3.source filename:这个命令其实只是简单地读取脚本里面的语句依次在当 前shell里面执行,没有建立新的子shell。那么脚本里面所有新建、改  变变量的语句都会保存在当前shell里面。


 


(3) shell 脚本路径对比


监控crontab执行的脚本 crontab 运行脚本_环境变量_04

输出结果:

监控crontab执行的脚本 crontab 运行脚本_文件名_05

 pwd prints the full pathname of the current working directory.

 执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称。

监控crontab执行的脚本 crontab 运行脚本_监控crontab执行的脚本_06

 readlink 输出符号链接值或者权威文件名

 

-f 选项可以递归跟随给出文件名的所有符号链接以标准化,除最后一个外所有组件必须存在。

简单地说,就是一直跟随符号链接,直到直到非符号链接的文件位置,限制是最后必须存在一个非符号链接的文件。

符号链接:就是软连接,即windows中的快捷方式

上面更直白的解释是:跟随快捷方式,找到最终的实际文件,而且该实际文件必须存在。

维基百科对dirname的解释:

dirname是一个标准UNIX程序。给予dirname一个路径名时,它会删除最后一个斜线('/')后的任何后缀,并返回结果。

$0 

Shell本身的文件名 

3 crontab如何成功执行python脚本

监控crontab执行的脚本 crontab 运行脚本_监控crontab执行的脚本_07

test_crontab.sh的内容:

监控crontab执行的脚本 crontab 运行脚本_文件名_08

aaa.py 的内容:

监控crontab执行的脚本 crontab 运行脚本_环境变量_09

python脚本生成的日志如下:

监控crontab执行的脚本 crontab 运行脚本_环境变量_10

aaa.log的内容:

监控crontab执行的脚本 crontab 运行脚本_符号链接_11

说明15:37定时任务执行了,crontab执行的脚本找到了python编译器。

只要保证当前shell 的PATH中能够有/usr/bin目录就能运行python程序。

监控crontab执行的脚本 crontab 运行脚本_监控crontab执行的脚本_12

环境变量配置:

方法1:shell启动时加载

监控crontab执行的脚本 crontab 运行脚本_环境变量_13

方法2:shell子进程启动时export

监控crontab执行的脚本 crontab 运行脚本_文件名_14

方法3:使用绝对路径

监控crontab执行的脚本 crontab 运行脚本_环境变量_15

4 参考文章:

  (1) crontab使用参考文章

      http://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/crontab.html

  (2) shell环境变量设置参考文章

      https://www.jianshu.com/p/63ded646d4cd

   (3) 路径相关文章

      https://www.computerhope.com/unix/upwd.htm