CentOS7で以下のようにバックアップサーバー(192.168.1.50)のフォルダ(D:\samba-backup)にバックアップファイル(bk-日付.tar)があるかどうかを調べるシェルスクリプトを書いたのですがうまくいきません。
if expect -c " set timeout 5 spawn ssh administrator@192.168.1.50:"d\\samba-backup" expect \"password\" send \"パスワード\n\" expect eof exit "|grep "bk-$(日付).tar" then echo "backup = O" else echo "backup = X" fi
D:\samba-backupにSSHで接続して、grepで"bk-$(日付).tar" があれば"backup = O"、なければ "backup = X"と表示されるようにしようと思いました。
set -xで調べると
- grep bk-20210426.tar
send: spawn id exp6 not open
while executing
と出ます。bk-20210426.tarというファイルはD:\samba-backupに存在します。
192.168.1.50にはsshで接続できます。
どこを直せば"backup = O"と正しく表示されるようになるのか教えてください。よろしくお願いいたします。
grep "bk-$(日付).tar" の意図を追記してください。
なお、少なくとも、grepには引数が2つ必要です。
(grepを使う目的も間違っているような気がします)
D:\samba-backupにSSHで接続して、grepで"bk-$(日付).tar" があれば"backup = O"、なければ "backup = X"と表示されるようにしようと思いました。
grepはファイルが存在するかどうかを調べるためのコマンドではありません。
まずそこが間違っていると思いますので見直してください。
それから、質問は編集できますので、ここで言われたことに対しては、質問を編集してください。
> grepには引数が2つ必要です。
一つで良いですよ。引数が一つの場合は標準入力を見ます。
>一つで良いですよ。引数が一つの場合は標準入力を見ます。
ああ、確かにそれはそうですね
回答1件
あなたの回答
tips
プレビュー
