pythonでftp取得自動化
短期間のバックアップ目的で、毎日FTP受信しているファイル群がある。
サイズも小さいし、それほど手間ではないので手作業を実施していたが、
やはり面倒になってきたので、pythonスクリプトを作成する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | #!/usr/bin/env python import os import logging import ftplib local_dat_dir = 'data/' server_dat_dir = '/data_dir' print('start.') ''' ダウンロード済みのファイルリスト作成 ''' for f in os.listdir(local_dat_dir): exists_list.append(f) ''' ダウンロードされていないファイルのダウンロード ''' try: ''' FTP接続し、サーバのデータディレクトリに移動 ''' ftp = ftplib.FTP('ftp-server') ftp.login('ftp-user', 'ftp-password') ftp.cwd(dat_dir) ''' サーバに存在するファイルでループ ''' for path in ftp.nlst(server_dat_dir): ''' パスを除去する filename = path[len(server_dat_dir) + 1:] ''' ダウンロードされていない場合は、ダウンロードする。 ''' if not filename in exists_list: print('ftp get start. [{}]'.format(filename)) # ダウンロード with open('{}/{}'.format(local_dat_dir, f), 'wb') as w: ftp.retrbinary('RETR {}'.format(f), w.write) print('ftp get end.') finally: ''' FTP切断 ''' ftp.quit() print('end.') |
こんな簡単なスクリプトでFTP受信できるのであれば、もっと早く作るべきだった。
同じタグの記事
- BOM付きUTF-8からBOMを除去するpython
- jythonのヒープメモリ設定
- Kotlin1.2.50がリリースされていた
- macOSをHigh Sierraに更新した。スクリプト実行環境のバージョンは変わったのか
- macOSをMojaveに更新した。スクリプト実行環境のバージョンは変わったか
- pathlib.Pathを調べる
- pyenvでpython環境をインストール
- pyenvとvirtualenvでpython環境を構築
- python unpack
- python3で数値のlistを文字列のlistに変換
同じカテゴリの記事