您可能只是指該文件,並且可能在某處記錄了一個錯誤(通常是/var/log/message
,或者在root
用戶的郵件文件中,這在默認情況下在Mac中被禁用)。
有關通過cron運行腳本的事情是它運行在不同的環境下。當您正常登錄Bash會話時,某些環境變量會自動設置,因此係統會自動檢查路徑(文件系統中可找到可執行文件的位置)等內容。不同的Unix系統處理這種情況的方式稍有不同......我不記得Mac的處理細節,但在某些系統上,我必須明確地提供完整的路徑,例如Bash可執行文件爲了獲得東西的工作。
腳本的可執行文件的位置通常是/bin/bash
或/bin/sh
或類似的東西。因此,在經歷Bash會話時,如果您致電/Users/mypath/France_run.txt
並且該文件是可執行的Bash腳本(例如,第一行類似於#!/bin/bash
,並且該文件的可執行位已設置),那麼系統知道自動運行諸如/bin/bash /Users/mypath/France_run.txt
之類的東西。然而,在cron的上下文中,您不會自動獲得這些便利,因此您可能必須詳細說明所有內容(即指定所有二進制文件或可執行文件的完整路徑)。同樣,情況並非總是如此。我只是看了一個Debian系統,我創建了一些cron作業來運行腳本,並且我不必在那裏調用/bin/bash
,但是我記得在Mac上需要做類似於過去的事情。
所以你的cron作業可能只需要指定猛砸二進制文件的完整路徑:
0 0 * * 2 /bin/bash /Users/mypath/France_run.txt
如果France_run.txt
的所有調用系統二進制文件(如ls
),您可能需要完全限定那些(/bin/ls
而不是隻有ls
)。
另外,根據劇本是怎麼寫的,它甚至可能是必要的cd
到腳本的目錄,如果你手動運行它:
0 0 * * 2 cd /Users/mypath; /bin/bash ./France_run.txt
(cd
是一個bash內置,所以沒有指定的路徑)
來源
2017-06-02 22:03:12
CJG