投稿日:

LinuxからWindowsサーバーのファイルを取得する。

あるプロジェクトでWindowsサーバーで作成されたCSVファイルを取得して、Linuxで(PHPを動かして)インポートする状況が発生しました。
前回のブログでファイルを渡す方法を紹介しました。設定と下準備は同様になります。


今回の状況として、Windowsサーバーが公開しているフォルダーからさらに奥にあるファイルを取得する方法を紹介します。
取得したいファイルは、’\\windowsサーバーのIPアドレス\share\AAAAA\BBBBB\test.csv’になります。
smbclient ‘\\windowsサーバーのIPアドレス\share’ -U ユーザー名%パスワード
により「smb: \>」として公開しているフォルダに接続します。
コマンドラインより「cd AAAAA/BBBBB」にて移動します。
取得先のフォルダも「lcd /home/download」にて変更します。
「get test.csv」にてLinuxからWindowsサーバーのファイルを取得することができます。

この内容を実行シェルとして記述する必要があったので、get_csv.shを作成しました、内容は、

#!/bin/bash
smbclient '\\windowsサーバーのIPアドレス\share' -U ユーザー名%パスワード -c "cd AAAAA/BBBBB;lcd /home/download;get test.csv;quit"

これをcronに設定して、定時にCSVファイルを取得することが出来るようになりました。