Bash脚本输出到文件从脚本失败但是从bash

时间:2018-06-18 10:12:14

标签: linux bash redirect scripting

我有这个脚本检查dcos auth登录是否有效,但我重定向输出的文件总是零大小,当我从bash shell运行脚本时,文件大于零。我究竟做错了什么 ?? ,我在下面使用的两个函数:

try_to_login()
{
# first needs to be logged as skyusr
# try to login and log the result to tmp file
# Sometimes the file is empty so we try again to login
# if the second time is OK it jumps to check the output
cd /home/skyusr/scripts/
dcos auth login --username=admin --password=admin > /home/skyusr/scripts/tmp.sal
}

check_login_result()
{
# Checks if the output of the login is "Login Successful!"
# If YES then writes to log file, if not sends mail and writes to log.
#export mail_to="salim.bisharat@amdocs.com,anis.faraj@amdocs.com"
export mail_to="salim.bisharat@amdocs.com"
now=$(date)
text_to_check=$(cat /home/skyusr/scripts/tmp.sal)
if [ -s /home/skyusr/scripts/tmp.sal ]
then
if [ "$text_to_check" = "Login successful!" ]
        then
        echo "$now - Check Successful" >> /home/skyusr/scripts/logs/login_log.log
else
        cat /home/skyusr/scripts/logs/mail_temp.log | mailx -s "!!! CRITITCAL -- Check DCOS login !!!" $mail_to
        echo "$now - !! ERROR ! Sent mail !! " >> /home/skyusr/scripts/logs/login_log.log
        fi
fi
}

1 个答案:

答案 0 :(得分:0)

In this script you define, but you do not call the functions. Simply append function calls:

    # ...
    echo "$now - !! ERROR ! Sent mail !! " >> /home/skyusr/scripts/logs/login_log.log 
    fi
fi
} # ... the last line of your script here

try_to_login # calls here ...
check_login_result