pythonでftp取得自動化

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受信できるのであれば、もっと早く作るべきだった。

同じタグの記事
同じカテゴリの記事

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA