Renommer les fichiers distants avec NcFTP
#!/bin/bash
echo 'open -u ${USER} -p ${PASS} ${HOST}
cd ${BASE_DIR}
ls
rm -rf ${BACKUP_FILE}
rename ${CURRENT_FILE_NAME} ${BACKUP_FILE}
rename ${NEW_FILE_NAME} ${CURRENT_FILE_NAME}
ls
quit'|ncftp
Lors du changement de fichier, je l'ai écrit avec l'intention de le frapper à partir de Jenkins, mais à la fin, je l'ai rejeté et je l'ai changé en python ci-dessous.
Renommer les fichiers distants en Python
#!/usr/bin/env python
# -*- coding: utf-8 -*-
print 'python >>>'
import sys, os, datetime, re
from ftplib import FTP
ftp_host = 'nom d'hôte'
ftp_user = 'Nom d'utilisateur'
ftp_pass = 'mot de passe'
ftp_base_dir = 'Répertoire avec les fichiers à renommer'
ftp_from_dir = 'Fichier nouvellement publié'
ftp_to_dir = 'Fichiers actuellement ouverts'
ftp_backup_prefix = '_'
def main(arg_user='', arg_pass='', *args):
if arg_user == '' or arg_pass == '':
print ' Rename directory failed'
print ' Error: User or Password is not input.'
return
ftp_user = arg_user
ftp_pass = arg_pass
dt = str(datetime.datetime.utcnow())
dt = dt.replace(':', '-')
dt = dt.replace(' ', '_')
dt = re.sub(r'\.\d+', '', dt)
print ' Rename directory start >>> ' + dt
try:
ftp = FTP(ftp_host)
ftp.login(ftp_user,ftp_pass)
ftp.cwd(ftp_base_dir)
file_list = ftp.nlst()
if ftp_from_dir in file_list:
ftp.rename(ftp_to_dir, ftp_backup_prefix+dt)
ftp.rename(ftp_from_dir,ftp_to_dir)
else:
print ' Rename directory failed'
print ' Error: NotFound New Directory'
ftp.close()
print ' Rename directory finished'
except Exception as e:
print ' Rename directory failed'
print ' Error: ' + e.message
if __name__ == '__main__':
sys.path.append(os.path.dirname(__file__))
sys_args = sys.argv
args = sys_args[1:] if len(sys_args) > 1 else []
main(*args)
Exécutez python ci-dessus
python file_rename.py UserName Password
Vous pouvez sauvegarder au moment du téléchargement Je pense que vous pouvez supprimer les anciens fichiers.
Recommended Posts