【问题标题】:crontab: "ftp command not found" error in macos [duplicate]crontab:macos中的“找不到ftp命令”错误[重复]
【发布时间】: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 作业现在可以工作了!

标签: bash macos terminal cron ftp


【解决方案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 绝对是一个错误;您添加的条目应该是目录,而不是单个文件。
猜你喜欢
  • 2013-03-22
  • 2018-06-13
  • 2018-12-10
  • 2013-12-30
  • 2012-04-30
  • 1970-01-01
  • 2017-05-22
  • 1970-01-01
相关资源
最近更新 更多