先ほどは、サーバーからローカルPCに対して、システムログを転送する
サンプルを試しました。

サーバー上からローカルにファイル転送するマクロ

今度は、逆に、ローカルPCからサーバーに対して任意のファイルを転送する
マクロ処理を試しましょう。

まずは、事前準備としてローカルの「C:\work」に「test.txt」という
ファイルを用意しておきます。

本当に転送できたかどうか確かめるために中身に適当に文字列を
入力しておきます。

ファイルを送信するサンプルとしては下記になります。

;接続先ホスト
HOSTADDR = '192.168.10.6'

;ユーザ名
USERNAME = 'test'

;パスワード設定
PASSWORD = 'testpass' 

;接続コマンド作成
COMMAND = HOSTADDR
strconcat COMMAND ':22 /ssh /2 /auth=password /user=' 
strconcat COMMAND USERNAME 
strconcat COMMAND ' /passwd=' 
strconcat COMMAND PASSWORD
 
;接続
connect COMMAND

;ローカルのファイルを削除
filedelete "C:\work\messages"

;ファイルをローカルに抽出
wait '$' '#'
scpsend "C:\work\test.txt" "/home/test/test.txt"


;接続
connect COMMAND

;マクロ終了 
end

スポンサーリンク


上記実行すると、下記のようにファイルを、ローカルPCから
無事サーバー上に転送することができました。

中身の文字列もちゃんと入っています。

今回のポイントとしては、ファイルを受信する際は、「scprecv」を使用しましたが、
逆に送信する際は、「scpsend」という構文を使用します。

scpsend ローカルPCファイルフルパス名 リモートサーバーフルパス名

注意点としては、受信側のコマンドと同じく送信先はディレクトリ名ではなく、
ファイル名まで指定する必要があります。

また、ファイル送信時にエラーが出るようであれば、「mpause」コマンドも
使用したほうが良いかと思います。

サーバー運用等をしていると、サーバー上にアップデートデータの転送や、
ライセンスファイルの転送等色々めんどくさい作業はいっぱいありますので、
そういった作業を効率化できますね。

スポンサーリンク