我很困惑,为什么这不起作用。
我已经尝试使用“&>”和“2>&1”redirectSTDOUT和STDERR,而且都不起作用。 我仍然通过这个cron工作(每分钟!)与smbclient抱怨,共享中没有文件的电子邮件。
* * * * * smbclient //scanner/scan-import secretpass -U administrator -c "prompt; mget *; del *" &> /dev/null
为了好奇:客户有一个旧的和昂贵的扫描仪,可以高速扫描多个文档,但软件无法configuration保存位置。 他们不希望直接在旧的XP工作站上保存文件,所以我已经分享了保存位置,并使用这个cron作业自动将文件拉到他们的Linux服务器。
Bash支持使用&>
将stdout和stdinredirect到一起,但sh
不。 Cron使用Bourne shell( sh
)而不是Bash。 使用>/dev/null 2>&1
来代替。
我不认为你需要第一个“&”吗? 只要“> / dev / null 2>&1”;
尝试将所有这些包装在一个单独的shell脚本中:
#!/bin/bash smbclient //scanner/scan-import secretpass -U administrator \ -c "prompt; mget *; del *"
并编辑cron行
* * * * * /path/to/your/script &> /dev/null