[PYTHON] Renommez et remplacez les fichiers distants en utilisant NcFTP dans le shell

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

Renommez et remplacez les fichiers distants en utilisant NcFTP dans le shell
Problèmes et solutions pour l'utilisation de l'environnement de débogage distant pour les applications Linux dans Visual Studio 2017
Utilisation de verticalenv dans les scripts shell
Traitez les fichiers du dossier dans l'ordre avec le script shell
[Shell] Comment obtenir la branche distante par défaut avec Git
Exporter et exporter des fichiers en Python
Remplacez le nom du répertoire et le nom du fichier dans le répertoire par une commande Linux.
Charger le SDK Python distant avec IntelliJ
Notes utilisant cChardet et python3-chardet dans Python 3.3.1.
Essayez d'utiliser l'API Wunderlist en Python
Essayez d'utiliser l'API Kraken avec Python
Essayez d'utiliser la bande HL dans l'ordre
Tweet à l'aide de l'API Twitter en Python
Lire tous les fichiers csv dans le dossier
Lire et écrire des fichiers JSON avec Python
Représentez facilement des données graphiques dans le shell et Python
Trouvez-le dans la file d'attente et modifiez-le
Téléchargez des fichiers dans n'importe quel format en utilisant Python
PATH ajouté lors de l'installation d'Anaconda3 dans le terminal Shell change et (base) hidden
Remplacez la représentation unique du fichier texte lu par une étiquette (en utilisant GiNZA)