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

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

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

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

Linux

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

Q&A

解決済

1回答

1448閲覧

シェルスクリプトの質問

asagaya

総合スコア42

CentOS

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

Linux

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

0グッド

0クリップ

投稿2021/04/14 04:07

編集2021/04/14 05:15

![イメージ説明]
イメージ説明
linux(CenOS7)で月曜から金曜の間だけ/home/shareの中身をtarでアーカイブにして/tmpに保存して、
さらに/tmpを192.168.1.50のwindowsserver2012のc:\samba-backupというフォルダにscpで送ろうと思い上図のようにシェルスクリプトを書きました。実行すると上図のように送れているようなメッセージが出てくるのですが、c:\samba-backupには何も表示されません。どこが間違っているのか教えてください。
コマンドはフルパスで書いています。シェルスクリプトを使わずに
scp -r /tmp administrator@192.168.1.50:"c:\samba-backup"
と入力したらちゃんと送れます。よろしくお願いいたします。

【シェルスクリプト↓】
bkfilename="bk-$(date '+%Y%m%d').tar
a=date +%w

if [ "$a" == "1" -o "$a" == "2" -o "$a" == "3" -o "$a" == "4" -o "$a" == "5" ] then;
tar -cvf /tmp/"$bkfilename" /home/share

expect -c "
set timeout 5
spawn scp -r /tmp administrator@192.168.1.50:"c:\samba-backup"
expect "password:"
send "パスワード\n"
expect eof
exit
"
fi
【シェルスクリプトの実行結果↓】
/home/sh/backup.sh
tar: Removing leading `/' from member names
/home/share/
/home/share/0408.txt
/home/share/abc.txt
spawn scp -r /tmp administrator@192.168.1.50:c:samba-backup
administrator@192.168.1.50's password:
bk-20210414.tar 100% 150KB 9.9MB/s 00:00

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2021/04/14 04:11

以前の質問 https://teratail.com/questions/332980 のときとどう変化しましたか? 以前の質問でのjbpb0さんの示した情報を使えば行ける気がするのですが、確認されたのでしょうか。
asagaya

2021/04/14 04:19

最後のinteractの部分を「expect {\"100%\" { exit 0}}」や「expect eof exit」などに変えてみましたが何も変わりませんでした。
otn

2021/04/14 04:24

見にくい上にコピペができないので、画像じゃなくて、テキストでコードと結果を載せましょう。
m.ts10806

2021/04/14 04:40

同じ質問で解決してないなら解決済みを解除すべきです 解決したけど別の質問ならタイトルなど変えるべきところは多くあります。 質問は編集できます。
guest

回答1

0

ベストアンサー

set -xしてみれば分かると思いますが、引用符の外なので、\\と書く必要があります。

sh

1expect -c " 2set timeout 5 3spawn scp -r /tmp administrator@192.168.1.50:"c:\samba-backup" 4expect \"password:\" 5send \"パスワード\n\" 6expect eof 7exit 8"

または、引用符の中に入れるか。

sh

1expect -c " 2set timeout 5 3spawn scp -r /tmp administrator@192.168.1.50:c:\samba-backup 4expect \"password:\" 5send \"パスワード\n\" 6expect eof 7exit 8"

投稿2021/04/14 11:39

otn

総合スコア85901

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

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

asagaya

2021/04/14 13:47

丁寧に教えていただきありがとうございます。明日試してみます。
asagaya

2021/04/15 00:58

spawn scp -r /tmp administrator@192.168.1.50:"c:\samba-backup" でやっても spawn scp -r /tmp administrator@192.168.1.50:c:\samba-backup でやっても C:¥samba-backupにはファイルが送られていませんでした。 何卒よろしくお願いします。
asagaya

2021/04/15 01:07

set -x での出力結果は spawn scp -r /tmp administrator@192.168.1.50:c:samba-backup になり、c:の後に\が表示されるようになるにはどのようにすればよいでしょうか。何卒よろしくお願いします。
asagaya

2021/04/15 01:25

\\にしたら出来ました。お世話になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問