[PYTHON] Benennen Sie Remote-Dateien mithilfe von NcFTP in der Shell um und ersetzen Sie sie

Benennen Sie entfernte Dateien mit NcFTP um


#!/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

Beim Wechseln von Dateien habe ich es mit der Absicht geschrieben, es von Jenkins aus zu treffen, aber am Ende habe ich es abgelehnt und unten in Python geändert.

Benennen Sie entfernte Dateien in Python um


#!/usr/bin/env python
# -*- coding: utf-8 -*-

print 'python >>>'

import sys, os, datetime, re
from ftplib import FTP

ftp_host = 'Hostname'
ftp_user = 'Nutzername'
ftp_pass = 'Passwort'
ftp_base_dir = 'Verzeichnis mit umbenennbaren Dateien'
ftp_from_dir = 'Neu veröffentlichte Datei'
ftp_to_dir = 'Derzeit geöffnete Dateien'
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)

Führen Sie Python oben aus


python file_rename.py UserName Password

Sie können zum Zeitpunkt des Hochladens eine Sicherungskopie erstellen Ich halte es für in Ordnung, alte Dateien zu löschen.

Recommended Posts

Benennen Sie Remote-Dateien mithilfe von NcFTP in der Shell um und ersetzen Sie sie
Probleme und Lösungen für die Verwendung der Remote-Debugging-Umgebung für Linux-Apps in Visual Studio 2017
Verwenden von Verticalenv in Shell-Skripten
Verarbeiten Sie die Dateien im Ordner in der Reihenfolge mit dem Shell-Skript
[Shell] So erhalten Sie den Remote-Standardzweig mit Git
Exportieren und Ausgeben von Dateien in Python
Ersetzen Sie den Verzeichnisnamen und den Dateinamen im Verzeichnis zusammen mit einem Linux-Befehl.
Laden Sie das Remote-Python-SDK mit IntelliJ
Hinweise zur Verwendung von cChardet und python3-chardet in Python 3.3.1.
Versuchen Sie es mit der Wunderlist-API in Python
Versuchen Sie, die Kraken-API mit Python zu verwenden
Versuchen Sie, das HL-Band der Reihe nach zu verwenden
Tweet mit der Twitter-API in Python
Lesen Sie alle CSV-Dateien im Ordner
Lesen und schreiben Sie JSON-Dateien mit Python
Zeichnen Sie Daten einfach in Shell und Python
Suchen Sie es in der Warteschlange und bearbeiten Sie es
Laden Sie Dateien in jedem Format mit Python herunter
PATH hinzugefügt bei der Installation von Anaconda3 im Terminal Shell ändern und (Basis) versteckt
Ersetzen Sie die eindeutige Darstellung der gelesenen Textdatei durch eine Beschriftung (mit GiNZA).