繁体   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