使SFTP脚本保持静默

时间:2013-11-05 23:15:28

标签: sftp silent

我目前有一个SFTP脚本,它通过每天在cron上运行的SSH将最新版本的文件上传到服务器。但是我总是收到这样的电子邮件(我将服务器更改为example.com fyi)

/etc/cron.daily/backup:
Connected to example.com.
Connected to example.com.

脚本的相关部分如下所示:

    sftp -o "IdentityFile=~/.ssh/backup" -q backup@example.com > /dev/null << COMMANDS
        cd weekly
    put /srv/backups/daily/$INSTANCE-$(date +%Y%m%d).tgz
    quit
    COMMANDS

它执行了两次,因为它在for循环中并用两个不同的名称替换$INSTANCE变量,因此cron中有两个Connected to example.com.消息。

我不想将所有内容打印到/dev/null,因为我想在我的电子邮件中收到错误。我能想到的是通过管道输入grep和greping for error或failure或者其他东西。这是唯一可能的选择吗?

任何帮助都会很棒!

2 个答案:

答案 0 :(得分:1)

我建议查看loglevel的选项:

  

LogLevel的

   Gives the verbosity level that is used when logging messages from
   ssh.  The possible values are: QUIET, FATAL, ERROR, INFO, VER-
   BOSE, DEBUG, DEBUG1, DEBUG2 and DEBUG3.  The default is INFO.
   DEBUG and DEBUG1 are equivalent.  DEBUG2 and DEBUG3 each specify
   higher levels of verbose output

我不能肯定地说这会100%解决你的问题,但默认是信息(报告连接和登录失败作为公共反馈)。将日志级别移动到FATAL只会显示FATAL消息。

希望这可以帮助你,它在ssh_config(5)手册页中。

答案 1 :(得分:0)

此选项可能有帮助:

 -q      Quiet mode: disables the progress meter as well as warning and diagnostic messages from ssh(1).