WSLでsshpassを使ってscpファイル送信①
3084 ワード
初めに
WSL(Ubuntu)で、シェルを実行したら、パスに記載しているファイルを指定サーバー上の指定フォルダに転送する。
どこまでファイルにして、どこまで実行ファイルに書くかはお好みで
実行(確認)環境
WSL2
Ubuntu 18.04
CentOS7(格納先)
フォルダ構成
# 実行フォルダ(どこでも大丈夫なハズ)
c:\test\
├ transport.sh
├ filepath(パスを記載)
└ passfile(パスワードを記載)
# 転送ファイル群
c:\temp\
├ test1.txt
├ test2.txt
└ test3.txt
ソース
設定ファイル系
filepath
C:/temp/test1.txt
C:/temp/test2.txt
C:/temp/test3.txt
※改行はLFで
passfile
hogehoge
※1行で記載する必要あり
シェルスクリプト
transport.sh
#!/bin/sh
# サーバーの転送先
SERVERPATH="/root/"
# sshのユーザー名
USERNAME="root"
# サーバーのホスト
SERVERHOST="XXX.XXX.XXX.XXX"
# ファイルパスをループ
for line in `cat filepath`
do
# ローカルファイルパス変換
upfiles=${upfiles}$(wslpath -u $line)" "
done
# sshpass でファイルを転送
sshpass -f passfile scp -o StrictHostKeyChecking=no ${upfiles} ${USERNAME}@${SERVERHOST}:${SERVERPATH}
実行(一応)
cd /mnt/c/test/
./transport.sh
cd /mnt/c/test/
./transport.sh
次はファイル別にサーバーのフォルダ指定するやつを作りたい
Author And Source
この問題について(WSLでsshpassを使ってscpファイル送信①), 我々は、より多くの情報をここで見つけました https://qiita.com/naozo-se/items/f4c89dac5c5f83e42d5f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .