機能 ショートカットキー
リファレンス(参考URL)一覧へ移動 R
記事URLをMarkDownとしてコピー Ctrl+M
前のコードタグへ移動 Ctrl+←
次のコードタグへ移動 Ctrl+→
ヘルプを表示・非表示 H
Tips
- ショートカットキーは記事上で有効です。ヘッダー/フッター付近では機能しないことがあります。
- コードタグ移動機能がうまく動かないときは、Shift+F5でページを更新してみてください。
- このウィンドウを閉じるには、Hキーをもう一度押してください

expectでrsyncがエラーになる場合の対処法

プログラミング

2年前から放置してたけどちょっと調べたら解決できました。(英語読めないときついと思われ)

こういうエラーがでる。

Missing trailing-' in remote-shell command.
rsync error: syntax or usage error (code 1) at main.c(430) [sender=3.1.1]

コードは以下。

#!/usr/bin/expect -f
# exp_internal 1    ;# uncomment to turn on expect debugging
set timeout -1
spawn rsync -av -e 'ssh -p 10022 -i ~/.ssh/yuis.key' hoge.md yuis@sv2031.xserver.jp:~/yuis.xsrv.jp/public_html/_tmp
expect "Enter passphrase"
send "yourownpassword\n"
expect eof

原因

シングルクォーテーション。

ssh – rsync complaining about missing trailing-" in a Bash script – Super User

BashFAQ/050 – Greg’s Wiki

解決法

シングルクォーテーションをダブルクォーテーションに変更する

これでいけます。

#!/usr/bin/expect -f
# exp_internal 1    ;# uncomment to turn on expect debugging
set timeout -1
spawn rsync -av -e "ssh -p 10022 -i ~/.ssh/yuis.key" hoge.md yuis@sv2031.xserver.jp:~/yuis.xsrv.jp/public_html/_tmp
expect "Enter passphrase"
send "yourownpassword\n"
expect eof

この記事で欲しい情報が見つからなかった方へ

この記事の更新情報がある場合があります。
この記事は以下の記事とも関連性があると思われます。

ごめんなさい!この記事には関連記事が1つも見つかりませんでした。

管理人の方針で、既存の記事の編集はせず、新しい情報や大きな既存情報の更新があった場合には、新しい記事として公開することになっています。
当記事で欲しい情報が見つからなかった・解決に至らなかった場合、これらのリンクがお役に立てるかも知れません。

どうやってこの関連記事を生成しているの?
この機能のPHPソースコード(2500行)

コメントを残す

Close Menu