我需要檢查在遠程主機上發佈了一個transacions文件。今天12月31日沒有發佈交易代碼。 我知道這是確定的。昨天有一個。然而,無論我使用哪個日期,30或31,返回碼都是相同的。在bash中檢查ssh remote命令的退出狀態
我正在查看的是ssh的返回狀態,我認爲應該是遠程執行命令的返回狀態 我認爲如果'ls -ltr'工作,'if語句'會以0退出和大於零的東西,如果'ls -ltr'沒有 工作,則爲false。我會認爲'if'語句會查看shh的返回狀態,這應該是遠程執行的命令的返回狀態 - 或者'ls -ltr'
我如何獲得這個工作?
這是針對30 - 這是在遠程主機上,並且是成功的
[email protected]:/scripts$ ssh -q -T [email protected] "ls -ltr /home/DropBox/transactions_20141230.csv"
-rw-r--r-- 1 rr_prd 2233047 Dec 31 07:26 /home/DropBox/transactions_20141230.csv
,這是對31沒有報告還爲31,所以它是不成功的
[email protected]:/scripts$ ssh -q -T [email protected] "ls -ltr /home/DropBox/transactions_20141231.csv"
/home/DropBox/transactions_20141231.csv not found
[email protected]:/scripts$
我不停地翻轉與註釋掉包括hashtag
[email protected]:/scripts$ ssh -q -T [email protected] "ls -ltr /home/DropBox/transactions_20141231.csv"
/home/DropBox/transactions_20141231.csv not found
[email protected]:/scripts$
#!/bin/bash
today=$(/bin/date +%Y%m%d)
#today="20141230"
echo $today
if ssh -q -T [email protected] "ls -ltr /home/DropBox/transactions_$today.csv" > /dev/null 2>&1 ;
then
echo "this worked"
else
echo "this did not work"
fi
但是日期 - 當我使用腳本兩個日期 - 它是成功的,當爲31,它真的應該返回「這並不工作」
[email protected]:/scripts$
[email protected]:/scripts$ vim offshore_check
[email protected]:/scripts$ ./offshore_check
20141230
this worked
[email protected]:/scripts$ vim offshore_check
[email protected]:/scripts$ ./offshore_check
20141231
this worked
[email protected]:/scripts$
[email protected]:/scripts$
它是一個較舊的離岸機器 - - SunOS 5.8 Generic_117350-35 - build-version 020 – capser