2016-10-04 17 views
1

スクリプトに慣れていないので、ブール論理に基づいて変数をプリントアウトする方法を理解したいと思います。2つのrsyncコマンドを実行し、出力をログファイルに出力します。

#!/bin/bash 

# set variables 
WEBAPPS_YES="Successfully synced webapps folder" 
WEBAPPS_NO="Could not sync webapps folder" 
RSYNC_YES="Successfully synced rsync log file" 
RSYNC_NO="Could not sync rsync log file" 

# Command to rsync 'webapps' folder and write to a log file 
rsync -azvh ~/webapps -e ssh [email protected]:/home/directories >> /path/to/rsync.log 2>&1 

# Command to rsync 'rsync.log' to a log file on backup server 'Larry' 
rsync -azvh --delete ~/rsync.log -e ssh [email protected]:/path/to/logs 

if [ $? -eq 0 ] 
then 
    echo 
    exit 0 
else 
    echo >&2 
    exit 1 
fi 

私は両方の部分が成功したかどうechoでプリントアウトする全体ifthenelse一部をしたいと思います。私はいくつかの種類のロジックステートメントが必要だが、それを理解することはできないことを知っている。

答えて

1

各rsyncコマンドを実行した後に結果を確認し、その後に結果を表示することができます。私はそれがうまくいくと思う:

# Command to rsync 'webapps' folder and write to a log file 
rsync -azvh ~/webapps -e ssh [email protected]:/home/directories >> /path/to/rsync.log 2>&1 
RESULT1="$?" 

# Command to rsync 'rsync.log' to a log file on backup server 'Larry' 
rsync -azvh --delete ~/rsync.log -e ssh [email protected]:/path/to/logs 
RESULT2="$?" 

if [ "$RESULT1" != "0" ]; then 
    echo "$WEBAPPS_NO" 
else 
    echo "$WEBAPPS_YES" 
fi 

if [ "$RESULT2" != "0" ]; then 
    echo "$RSYNC_NO" 
else 
    echo "$RSYNC_YES" 
fi 
+0

それは素晴らしい考えです!ありがとう!上記の変数に基づいてどちらが失敗したかを印刷することは可能でしょうか?だから私はWEBAPPS_YESを "しかし" RSYNC_NOにすることができました。そんなこと? – eekfonky

+0

確かに、RESULT1とRESULT2は基本的に "0"を保持しているので、それを検査して結果を表示することができます。更新された回答をご覧ください。 –

+0

私はそれを行って、あなたに知らせるでしょう。助けてくれてありがとう – eekfonky

関連する問題