sshfs
接続の問題によって時々中断するリモートサーバーのインストールがあります。この問題を解決するために、ファイルがマウントされていることを確認するスクリプトを作成しました。そうでない場合は、電子メールを送信して再接続してくださいsshfs
。
その後の2番目の文が正しい構文を持っているかどうかはわかりませんelse
。これを区別するために括弧が必要か、それとも最初のステートメントを終了するためにセミコロンが必要かどうかはわかりませんか?コードは次のとおりです。
#!/bin/bash
file="/path/to/mount/.exists"
if [ -f "$file" ]
then
echo "$file found." > /dev/null 2>&1
else
/usr/sbin/sendmail -t [email protected] </etc/alert.txt
/bin/sh /etc/fix_mount.sh
fi
次に、else
最初に警告メッセージを送信して問題が発生したことを知らせ、2番目のbashスクリプトを実行して再接続しますsshfs
。私はそれがそれ自体で動作することを知っていますが、私の構文のために正しく動作しないよう/etc/fix_mount.sh
です。else
かっこ?セミコロン?準備しましたか?
ベストアンサー1
あなたの文法は大丈夫です。
if/then/elseステートメントの構文にはif
、then
および(忘れないでください)というキーワードが含まれています。 、およびステートメントの後に許可されるコマンドは次のとおりです。else
fi
elif
then
else
elif
リストコマンド(1つ以上のコマンド)。