crontab 定時運行腳本程序

1 編寫crontab文件,設定啓動時間,執行腳本

 

2 第三方軟件所需的環境變量

  (1) crontab啓動命令

  (2) shell腳本內容

  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 腳本路徑對比

輸出結果:

 pwd prints the full pathname of the current working directory.

 執行pwd指令可立刻得知您目前所在的工作目錄的絕對路徑名稱。

 readlink 輸出符號鏈接值或者權威文件名

 

-f 選項可以遞歸跟隨給出文件名的所有符號鏈接以標準化,除最後一個外所有組件必須存在。

簡單地說,就是一直跟隨符號鏈接,直到直到非符號鏈接的文件位置,限制是最後必須存在一個非符號鏈接的文件。

符號鏈接:就是軟連接,即windows中的快捷方式

上面更直白的解釋是:跟隨快捷方式,找到最終的實際文件,而且該實際文件必須存在。

維基百科對dirname的解釋:

dirname是一個標準UNIX程序。給予dirname一個路徑名時,它會刪除最後一個斜線('/')後的任何後綴,並返回結果。

$0 

Shell本身的文件名 

3 crontab如何成功執行python腳本

test_crontab.sh的內容:

aaa.py 的內容:

python腳本生成的日誌如下:

aaa.log的內容:

說明15:37定時任務執行了,crontab執行的腳本找到了python編譯器。

只要保證當前shell 的PATH中能夠有/usr/bin目錄就能運行python程序。

環境變量配置:

方法1:shell啓動時加載

方法2:shell子進程啓動時export

方法3:使用絕對路徑

4 參考文章:

  (1) crontab使用參考文章

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

  (2) shell環境變量設置參考文章

      https://blog.csdn.net/longxibendi/article/details/6125075

      https://blog.csdn.net/p106786860/article/details/51318467

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

   (3) 路徑相關文章

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

      https://blog.csdn.net/10km/article/details/51906821

      https://my.oschina.net/leejun2005/blog/150662

      https://blog.csdn.net/diabloneo/article/details/7173438

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章