簡體   English   中英

為什么cygwin ls可以使cygwin cron找不到文件?

[英]why cygwin cron cannot find a file when cygwin ls can?

通過使用cygrunsrv和vixie的cron進行cygwin,我得到了一份cron計划的工作。 作業是一個Shell腳本,它將文件從一個目錄復制到另一個目錄並重命名它們。

該腳本位於/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.

那怎么了? 我該如何解決?

謝謝。

我沒有看過cygwin幾個,所以我在這方面的細節將很少。

您的問題是目錄樹。 復制之前,您需要將cwd(使用cd)設置為/ home / martin。 訣竅是知道/ home相對於cron登錄的位置。坦率地說,我不記得了,但是我確實記得我在文檔集中找不到它。

假設時間是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中的主目錄

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

這是很久以前的事了,如果情況有所不同,非常抱歉。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM