2010-06-04 55 views
0

我通過使用cygrunsrv和vixie的cron for cygwin獲得了cron工作。該作業是一個shell腳本,用於將文件從一個目錄複製到另一個目錄並重命名它們。爲什麼cygwin cron在cygwin ls可以找不到文件?

該腳本位於/home/martin/my/script/copy_files.sh中。而該路徑的權限是:

drwxrwxrwt+ 1 martin root   0 2010-06-02 17:36 home 
drwxr-xr-x+ 1 martin Domain Users 0 2010-06-03 16:19 martin 
drwxrwxrwt+ 1 martin Domain Users 0 2010-06-02 16:47 my 
drwxrwxrwt+ 1 martin Domain Users 0 2010-06-04 16:31 script 
-rwxr-xr-x 1 martin Domain Users 439 2010-06-02 18:10 copy_files.sh 

當我ls -l命令,源文件是:

-rwxrw-rw- 1 martin Domain Users 13856 2010-06-04 10:05 .bash_history 

但在執行作業時,cp命令失敗,原因是

cp: /home/martin/.bash_history: The system cannot find the path specified. 

那又怎麼了?我該如何解決它?

謝謝。

回答

0

我還沒有看過cygwin的一些,所以我的細節將會很少。

你的問題是目錄樹。在複製之前,您需要將cwd(使用cd)設置爲/ home/martin。訣竅是知道/ home所在的位置,相對於cron登錄的位置。我坦率地不記得,但我確實記得我在docset中找不到它。

我們假設時間是15:28。進入crontab -e命令補充一點:

30 * * * * /usr/bin/echo "current dir= $(pwd) $PATH" 2&>1 > ./19191919.log 

等到15:31,進入crontab -e命令,並刪除該條目。我們不再需要它

find/-type f -name 19191919.log -exec /usr/bin/cat {} \; 

這會告訴你你需要知道什麼。關於PATH和登錄目錄結果。我對vixie的體驗是,它不是/ etc/passwd中的主目錄

有一些覆蓋/ etc/passwd的.conf文件。

這是很久以前,很抱歉,如果事情變得不同。