Bash 用于下载 ftp 个文件的脚本
Bash Script to download ftp files
我写了一个 bash 脚本来从 FTP 服务器下载文件。
#!/bin/bash
screen /usr/local/bin/wget ftp://user:passwd@IP:/Folder/*
当我 运行 这个脚本手动工作时,它可以工作,但是当我尝试将它设置为使用 cron 作业自动执行时,它不起作用。
计划任务:
00 17 * * * /Users/user/.Scripts/test.sh
知道为什么这不起作用吗?
我也一直收到这封邮件
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=user>
X-Cron-Env: <USER=user>
X-Cron-Env: <HOME=/Users/user>
Date: Mon, 15 Feb 2016 19:12:00 -0600 (CST)
Must be connected to a terminal.
我刚刚尝试使用 sh,我收到的就是那封邮件。
将您的脚本更改为:
#!/bin/bash
SCREEN_OPTS=""
DOWNLOAD_DIR="."
if [[ ! -t 1 ]]; then
SCREEN_OPTS="-d -m"
DOWNLOAD_DIR="/path/to/save/files"
fi
screen $SCREEN_OPTS /usr/local/bin/wget --directory-prefix="$DOWNLOAD_DIR" ftp://user:passwd@IP:/Folder/*
这样,如果 运行ning 来自 cron
,screen
将 运行 处于分离模式,并且不需要终端。
如果脚本 运行来自终端,[[ -t 1 ]]
测试表达式将 return 为真 (0
)。
您还需要为 wget
指定一个输出目录,否则它只会保存到 cron
的工作目录。
我写了一个 bash 脚本来从 FTP 服务器下载文件。
#!/bin/bash
screen /usr/local/bin/wget ftp://user:passwd@IP:/Folder/*
当我 运行 这个脚本手动工作时,它可以工作,但是当我尝试将它设置为使用 cron 作业自动执行时,它不起作用。
计划任务:
00 17 * * * /Users/user/.Scripts/test.sh
知道为什么这不起作用吗?
我也一直收到这封邮件
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=user>
X-Cron-Env: <USER=user>
X-Cron-Env: <HOME=/Users/user>
Date: Mon, 15 Feb 2016 19:12:00 -0600 (CST)
Must be connected to a terminal.
我刚刚尝试使用 sh,我收到的就是那封邮件。
将您的脚本更改为:
#!/bin/bash
SCREEN_OPTS=""
DOWNLOAD_DIR="."
if [[ ! -t 1 ]]; then
SCREEN_OPTS="-d -m"
DOWNLOAD_DIR="/path/to/save/files"
fi
screen $SCREEN_OPTS /usr/local/bin/wget --directory-prefix="$DOWNLOAD_DIR" ftp://user:passwd@IP:/Folder/*
这样,如果 运行ning 来自 cron
,screen
将 运行 处于分离模式,并且不需要终端。
如果脚本 运行来自终端,[[ -t 1 ]]
测试表达式将 return 为真 (0
)。
您还需要为 wget
指定一个输出目录,否则它只会保存到 cron
的工作目录。