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