サーバからファイルをlocalにコピーする時に、FTPクライアントソフトを使用している方は、結構いるのではないかと思います。
私自身もその一人で、ソフトを起動してはファイルを転送しています。
私は、製造業に従事しており、装置が吐き出すlogファイルを確認したり、logファイルをもとに資料作成したりします。
この作業(ファイルの転送作業)が何気にめんどくさく、効率化できないかと色々調べているといい記事にたどり着きました。
FTPで自動でアップロード・ダウンロードするバッチファイルの作り方
やりたいこと
- linux server にUploadされるファイルを任意のディレクトリにコピーする
- コピーされた任意のファイルをlocal環境にコピーする
ShellScriptとBatchファイルの作成
shellscript(test.sh)
#!/bin/bash
cd ファイルがUploadされるPATHを記述する
cp ファイルをCopyするPATHを記述する
shellscriptはcronで定期実行できるようなのですが、我社のserverではコマンドは使用できなかった為、shellの実行は手動で行います。
※cronコマンドがユーザ側で使用できてしまうと、Serverに負荷がかかる?ため使用できなくしているのかもしれませんね。
よくわからない、知らないことはやらないほうがいいと思っています。
どうしてもやりたいなら、有識者に確認ですね。
どなたかcronに詳しい方いらっしゃれば、教えて下さい。
バッチ処理
Batchファイル(test.bat)
echo 'FTP start...'
pause
ftp -s:ftp_test.txt
pause
バッチ処理で読み込むファイル(ftp_test.txt)
open server url
login ID
password
bin
prompt
cd ShellScriptに記述したファイルをコピーしたPathを記述
get FileName.拡張子 コピーしたいlocalのPath + FileName.拡張子を記述する
bye
詳しい記述方法に関しては、参考記事を参照して下さい。
尚、バッチ処理の定期実行(自動化)はタスクスケジューラで実行可能だったと思いますが、そこまで使用頻度が多くないため、私の場合は手動で行っています。
興味のある方は、ググってみて下さい。いろいろな記事があると思います。
以上、FTPソフトを使わずにファイルをlocalにコピーする方法を紹介させて頂きました。
自分の知らない事を学び実際に実行して正常に動作した時ってとても楽しいです。
これからも学んだことを記事にしていきたいと思います。