Sync files and directories over SSH. Update destination files according to the source size and modified time. Remove destination files and directories if not present at source or excluded (include/exclude parameters). Example: # We synchronize a stock Android phone sdcard mountpoint to our home (assuming a SSH server is running on the device) from sftpsync import Sftp sftp = Sftp('192.168.1.149', 'root', 'password', port=2222) src = '/mnt/sdcard' dst = '/home/user/phone-backup/' # We don't want to backup everything exclude = [r'^Music/', r'^Video/'] sftp.sync(src, dst, download=True, exclude=exclude, delete=True) # We sync a local directory to the phone src = '/home/user/data/code/sftpsync-py' dst = '/mnt/sdcard/data/' sftp.sync(src, dst, download=False, delete=True) Install: pip install sftpsync or conda install -c mjirik sftpsync