2016-08-24 6 views
4

私のシステムからscpコマンドを実行し、別のコンピュータにファイルを移動したり、その逆にファイルを移動したりできます。安全な転送のためのBashスクリプト

私のケースには小さな問題があります。最終的なコンピュータに接続するために、私はまずhost_bにsshし、次にhost_cにsshしなければなりません。

かいつまんで、私が最初にHOST_Bし、その後

これをhost_cするためにすべての私のファイルをコピーする必要がscematicです:

my_computer -> host_b -> host_c 

私は私を実行するためにこれをしなければならない、ので、手動で毎回手動でコードを書いているので、ちょっとイライラしているので、私はこのプロセスを自動化するために私自身のスクリプトを作るべきだと思った。

はここで、これまでに私のコードです:

#!/usr/bin/expect -f 

echo 
echo "Move files from your computer to HostC!" 
echo 

printf 'Username for hostB: ' 
read -r userB 
hostb_addr='hostb.com' 

printf 'Username for hostC: ' 
read -r userC 
hostc_addr='hostc.com' 

printf 'File you want to move: ' 
read -r filepath 

scp_params='-P 8140' 

# connect via scp to hostB 
spawn scp $scp_params $filepath [email protected]$hostb_addr:~/temp_transfer 

interact 

主なアイデアは、HOSTCに再度SCP、hostBでの一時フォルダに自分のコンピュータからファイルを取得し、hostBでからファイルを削除することです。

私はこの仕事をしようとして始めましたが、私は「産卵コマンドが見つからない」

NOTE取得しています:これは実際に私はbashの

+0

@shellterいいえセキュリティのためにできません...あなたが会社のネットワークにハードワイヤードされていない限り、あなたに言ったようにしなければなりません。だから、家から仕事をするためのピクルスのようなものです – Pavlos

答えて

1

を使用したのは初めてである組み込みがすでにありますがこれを行うにはssh/scpの機能を使用します。 sshトンネルは、あなたのローカルな場所からhostBを開き、hostCを使って1つのコマンドで開くことができます。 scpでは、-oフラグを使用してこれを行うことができます。

scp -o ProxyCommand="ssh $hostB nc $hostC 22" $path_to_file $hostC:$path_to_file 
+0

うわー!ありがとう!私はそれに行くよ! – Pavlos

関連する問題