0

可能是一个简单的问题,但我很困惑:

当我手动运行以下脚本时,它工作正常。虽然我没有以用户 git 的身份运行此脚本,但作为用户 XI 能够使用应用于 git 用户主目录的 ls 和 du 命令。如果我尝试在 cronjob 中运行这个脚本,这两个命令不会被定期调用,不知道为什么。cmd 文件的第一次“extern”调用在这两种情况下都能完美运行,并产生常规输出。

我注意到的是:我只能以用户 X 的身份使用 ./runbackup.sh 运行脚本,并且它存储在用户主目录中。

Cron 以用户 X 的权限运行。

令人困惑...:/ ...有什么想法吗?

脚本:runbackup.sh:

#!/bin/bash

/cygdrive/e/xp-batches/backup.cmd > info.log
echo "### CURRENT HOMEDIR ###" >> info.log
ls -gh --block-size=K /home/git >> info.log
echo "### SIZE ###" >> info.log
du -hs /home/git >> info.log
email -s "Backup Status" dum@dio.com < info.log
4

1 回答 1

1

最好不要对 cron 为您提供的环境做任何假设。使用完整路径:

/bin/ls -gh --block-size=K /home/git >> info.log

而不仅仅是“ls”。

哦,也许也可以使用绝对路径而不是 info.log。

于 2012-05-18T22:52:34.977 回答