質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

2回答

662閲覧

sshを使ったシェルスクリプトについての質問

asagaya

総合スコア42

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

1クリップ

投稿2021/04/27 05:21

編集2021/04/27 06:29

先ほどした質問と似ている質問で申し訳ないのですが、(若干違います)
sshで192.168.1.50に接続して、grepでD:\samba-backup\tmpの中を探して、
"bk-日付.tar"という名前のファイルがあれば"backup = O"、なければ"backup = O"と表示されるようにしたいと思い以下のようにシェルスクリプトを書きました。

if expect -c " set timeout 5 spawn ssh administrator@192.168.1.50 cmd /c dir /b d:\samba-backup\tmp expect \"password\" send \"パスワード\n\" expect eof exit "|grep "bk-$(日付).tar" then echo "backup = O" else echo "backup = X" fi

先ほどの質問と違う点はD:\samba-backupの下にtmpというフォルダを作り、その中にバックアップファイル(bk-日付.tar)を置いています。
実行すると"backup = O"と表示されると思ったのですが、"backup = X"と表示されます。
tmpフォルダには"bk-日付.tar"という名前のファイルが確かに置いてあります。
どうすれば"backup = O"と表示されるようになるのか教えてください。よろしくお願いいたします。
【実行結果】
イメージ説明
【tmpフォルダ(192.168.1.50)】
イメージ説明
追記【前回成功したスクリプト】
変えたのは3行目のd:\samba-backupをd:\samba-backup\tmpにした所だけです。

if expect -c " set timeout 5 spawn ssh administrator@192.168.1.50 cmd /c dir /b d:\samba-backup expect \"password\" send \"パスワード\n\" expect eof exit "|grep "bk-$(日付).tar" then echo "backup = O" else echo "backup = X" fi

【実行結果(前回)】
イメージ説明
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mather

2021/04/27 05:26

質問の内容と関係ないツッコミですが、タイトルが「その2」というのはよろしくないです。 あなたの中では続いているのかもしれませんが、新しい質問は個別の質問です。 質問内容がわかるようにタイトルを設定してください。
asagaya

2021/04/27 05:43

失礼しました。
guest

回答2

0

ベストアンサー

ああ、失礼しました。
過去の質問だと、scpでこっちで実行されるのでd:\samba-backupで良かったんですが、
今度は(というか直前の質問)、sshで向こうで実行するコマンドの一部なのでd:\\samba-backup\\tmpとさらにクォートしてください。

投稿2021/04/27 09:14

編集2021/04/27 09:16
otn

総合スコア84798

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

asagaya

2021/04/27 10:03

何度も教えていただき、ありがとうございました。
guest

0

ssh で接続しているだけで、ファイル名を出力していないので grep でマッチしていません。
したがって、 else が実行されています。

投稿2021/04/27 05:46

mather

総合スコア6753

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

asagaya

2021/04/27 06:12

すみません、ファイル名を出力するにはどうすればよいでしょうか。何卒よろしくお願いします。
mather

2021/04/27 06:14

> D:\samba-backupの中をgrepで探す時はこんな感じでいけた 本当に成功しましたか?その時のスクリプトを提示してください。 前回の回答の通りであれば、今の回答とは違っている箇所がありますが。
mather

2021/04/27 06:15 編集

しれっと質問を更新しないでください。実行結果の画像と食い違っています。 ご自身できちんと確認したことを質問に記載してください。
asagaya

2021/04/27 06:37

前回成功した時の実行結果を追記しました。何卒よろしくお願いいたします。
otn

2021/04/27 09:22

> すみません、ファイル名を出力するにはどうすればよいでしょうか。何卒よろしくお願いします。 前の質問の回答に書きましたけど。 回答で教えられたことは理解して記憶(もしくは記録)しましょう。 質問する度にその回答を忘れて次の質問をしていると成長できないですよ。
asagaya

2021/04/27 10:04

ご迷惑をおかけしました。気をつけます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問