【问题标题】:ssh command not working when script runs in crontab vs. manual command当脚本在 crontab 与手动命令中运行时,ssh 命令不起作用
【发布时间】:2020-01-02 23:56:03
【问题描述】:

我正在创建一个循环遍历服务器名称文件并检查服务器 /app 中的可用空间的脚本。当我通过命令行运行脚本时,它运行良好。但是,当它通过 crontab 运行时,我的主要变量 ($appData) 没有被设置/存储。

我已经尝试回显 SSH 命令 - 它仍然没有返回任何信息。

脚本:

#!/bin/sh

inputFile ='/tmp/SpaceMonitoring/serverList.txt'
dos2unix $inputFile



output=/tmp/SpaceMonitoring/Logs/spaceResultsFull.$(date '+%F_%HH').txt

echo -e "Start Script [$(date '+%F %H:%M:%S %Z')] \n \n Local Drives:" > $output


while  read -r line|| [[ -n "$line" ]]; do 

    appText="/app"      
    appData=$(ssh -Aqno "StrictHostKeyChecking=no" $line "df -h | grep ' /app$'")   
    appFree=$(echo $appData | awk '{print $4}')     

    finalResApp=$(echo -e "\t$line \t $appText ($appFree) \n")  

    echo "$finalResApp" >> $output


done < "$inputFile" 

echo -e "\n End Script [$(date '+%F %H:%M:%S %Z')]" >> $output

Crontab:

00 10 * * * /tmp/SpaceMonitoring/checkSpace.sh

通过命令行手动运行输出文件:

Start Script [2019-08-26 15:58:32 EDT] 

    server123    /app (86%)
    server234    /app (4%)

 End Script [2019-08-26 15:59:54 EDT]

通过 crontab 运行输出文件:

Start Script [2019-08-26 15:58:32 EDT] 

    server123    /app ()
    server234    /app ()

 End Script [2019-08-26 15:59:54 EDT]

【问题讨论】:

  • 看看openssh的选项-n
  • 一般注意事项:从inputFile = 行中删除空格。要调试 cron 作业,请将错误输出重定向到日志文件(并从 ssh 中删除 -q 选项)。您是否使用ssh-agent 身份验证?如果是这样,这将无法从 cron 作业中获得(除非您在该作业中运行代理 );无论如何,我很确定您不想转发代理连接(-A 选项)。
  • 我已经在此处添加了 -n 变量——我们在服务器上只有 ssh——没有 openssh
  • 好的,尝试将ssh替换为&lt;/dev/null ssh
  • @Cryus /null ssh 仍然没有工作

标签: bash cron sh


【解决方案1】:

我遇到了同样的问题,在我运行 ssh 命令的 100 台主机中,有 3 台主机始终未能返回任何数据,但仅在从 cron 运行时。我发现解决方案从默认的 ConnectTimeout (由系统设置)开始增加。在我的情况下,我将其设置为 30 秒,较低的数字可能会很好。因此,对于您的示例,我将执行以下操作

appData=$(ssh -Aqno "StrictHostKeyChecking=no" -o ConnectTimeout=30 $line "df -h | grep ' /app$'")

这确实解决了我遇到的同样问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-04
    • 2017-11-27
    • 2012-08-24
    • 1970-01-01
    • 2015-10-12
    • 1970-01-01
    • 2018-09-05
    相关资源
    最近更新 更多