[英]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.