crontab:macos中的“找不到ftp命令”错误[重复]
Posted
技术标签:
【中文标题】crontab:macos中的“找不到ftp命令”错误[重复]【英文标题】:crontab: "ftp command not found" error in macos [duplicate] 【发布时间】:2021-05-20 07:34:23 【问题描述】:这里是新手。我一直在寻找解决方案,但似乎找不到。
来自我的 crontab 的错误日志:
/Users/harrold/bin/ftp_automate.sh: line 14: ftp: command not found
我制作了一个名为ftp_automate.sh
的脚本,将文件从我的本地文件夹发送到我的ftp 服务器。 脚本在终端(zsh) 中使用% sh ftp_automate.sh
。这是脚本:
#!/bin/bash
# FTP server details here
SERVER="ftp.DUMMYSITE.com"
USERNAME="DUMMYUSER"
PASSWORD="DUMMYPASS"
# local directory containing source backup file
SOURCEFILES="/Users/harrold/Desktop/FOLDER/ftp-test"
# remote server directory path in which backup needs to be put in
BACKUPDIRCTORY="/folder/subfolder"
# login to remote server
ftp -n -i $SERVER <<EOF
user $USERNAME $PASSWORD
cd $BACKUPDIRCTORY
bin
lcd $SOURCEFILES
mput *
quit
EOF
但是,我希望它使用 crontab 来工作,所以它每分钟都能完成这项工作。这就是我使用% crontab -e
的方式:
* * * * * /Users/harrold/bin/ftp_automate.sh >> /Users/harrold/bin/logs/ftp.log 2>&1
知道为什么我收到 ftp command not found 错误吗?
顺便说一下,我的脚本放在/Users/harrold/bin
里面。
【问题讨论】:
ftp
在你的$PATH
中吗?
@HKT : 当它是一个 bash 脚本时,为什么要标记为 zsh?
@Mureinik 我在执行的任何步骤中都没有使用 $PATH 变量。我应该把它放在某个地方吗?抱歉还是新手。
另外,请注意 cron-overrun。 (每分钟一次非常频繁)
非常感谢@MartinPrikryl,您是救生员!终于了解如何处理 $PATH 并且该链接提供了我在脚本中需要的一些其他详细信息。 Cron 作业现在可以工作了!
【参考方案1】:
我现在明白了!
我只需要在我的脚本上添加 ftp 的完整路径,如下所示:
/usr/local/bin/ftp -n -i $SERVER <<EOF
此外,我必须在我的 bash 配置文件中添加 ftp $PATH vi .bash_profile
在我的主目录(例如 /Users/harrold)
export PATH="/usr/local/bin/ftp:$PATH"
为了使更改生效,我必须使用source ~/.bash_profile
重新加载我的个人资料
【讨论】:
将/usr/local/bin/ftp
添加到您的PATH
绝对是一个错误;您添加的条目应该是目录,而不是单个文件。以上是关于crontab:macos中的“找不到ftp命令”错误[重复]的主要内容,如果未能解决你的问题,请参考以下文章
在 mac OS 上从 crontab 运行 git pull 命令问题
crontab 没有运行 local/bin/ 脚本。大苏尔卡塔利娜