рдкрд╛рдпрдерди рдЯреВрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдорд┐рдХреНрд░реЛрдЯреАрдХреНрд╕ рдХреЗ рд╕рд╛рде рдХреЗрдВрджреНрд░реАрдХреГрдд рд╡рд┐рдиреНрдпрд╛рд╕ рд╕рдВрдЧреНрд░рд╣

рдХреНрдпреЛрдВ



рдиреЗрдЯрд╡рд░реНрдХ рдиреЛрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдФрд░ рдЙрдирдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рд╕рд╛рде, рдХрдИ рд▓реЛрдЧреЛрдВ рдХрд╛ рд╢рд╛рдпрдж рдПрдХ рд╕рд╡рд╛рд▓ рд╣реИ - рдФрд░ рдЕрдЧрд░ рд▓реЛрд╣реЗ рдХрд╛ рдЯреБрдХрдбрд╝рд╛ рдорд░ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреНрдпрд╛ рдореИрдВ рдЬрд▓реНрджреА рд╕реЗ рджреВрд╕рд░реЗ рдХреЛ рдХрд╛рдо рдмрд╣рд╛рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ? рдЕрдЧрд░ рдореИрдВ рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдХрд┐рддрдиреА рджреЗрд░ рддрдХ рдЙрди рдЫреЛрдЯреА рдЪреАрдЬреЛрдВ рдХреЛ рдкрдХрдбрд╝реВрдВрдЧрд╛ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рднреВрд▓ рдЧрдпрд╛ рдерд╛?

рдЧреБрдЧреНрд▓рд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдиреЗ рдЗрд╕ рд╕рдордЭ рдХреЛ рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕ рд╡рд┐рдХреНрд░реЗрддрд╛ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреЛрдИ рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИрдВред рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рдирд╣реАрдВ рдЖрдпрд╛ рдХрд┐ рд╕рдореБрджрд╛рдп рдореЗрдВ рдХреНрдпрд╛ рдкрд╛рдпрд╛ рдЧрдпрд╛ - рдЙрдиреНрд╣реЛрдВрдиреЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░ рд╣реА рдмреИрдХрдЕрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░рдЦрдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╢реЗрдбреНрдпреВрд▓ рдкрд░ рдЪрд▓рд╛рдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХреАред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдЗрд╕рд╕реЗ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдХрдИ рджрд░реНрдЬрди рдЙрдкрдХрд░рдг рд╣реИрдВ, рддреЛ рдкреНрд░рддреНрдпреЗрдХ рдХреЙрдкреА рдХреЗ рд▓рд┐рдП рдХреЙрдкреА рдкреЗрд╕реНрдЯ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдирд╛ рдлреЗрдВрдЧрд╢реБрдИ рдирд╣реАрдВ рд╣реИред

рд╕реМрднрд╛рдЧреНрдп рд╕реЗ рдкрд╛рдпрдерди рдФрд░ рдлрдВрддрд╛рд╕реА рдореЗрдВ рдЙрдкрдпреЛрдЧреА рдЪреАрдЬреЗрдВ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдХреМрд╢рд▓ рд╣реИред


рдХрд▓реНрдкрдирд╛



рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдБ рдХрд┐ рдореБрдЭреЗ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП - рдПрдХ TFTP рд╕рд░реНрд╡рд░, рдЬрд╣рд╛рдБ рд╣рдо рдЕрдкрдиреА рдЕрд░реНрдерд╡реНрдпрд╡рд╕реНрдерд╛ рдХреЛ рд░рдЦреЗрдВрдЧреЗ, * рдПрдХ рдирд┐рдХреНрд╕ рдорд╢реАрди (рдЬреАрдд рдХреЗ рддрд╣рдд рдРрд╕рд╛ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ), рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдЖрд╡рд╢реНрдпрдХ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдмреЛрд░реНрдб рдкрд░ рдкрд╛рдпрдердиред рдЬреИрд╕рд╛ рдХрд┐ рдмрд╛рдж рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛, TFTP рд╕рд░реНрд╡рд░ рдХреЛ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЖрдкрдХреЛ FTP рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдмрд╛рд░ рдХреЛрд╢рд┐рд╢ рдХрд░реЛ


рдореИрдВ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ - рдореИрдВ рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдЯреЗрд▓рдиреЗрдЯрд▓рд┐рдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ - рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЕрдЬреАрдм рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реНрд╡рд┐рдЪ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкрд░ рд╕реЛрдЪрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдорд┐рдХреНрд░реЛрдЯрд┐рдХ рдХреЗ рдЯреЗрд▓рдиреЗрдЯ рдХреЛ рдЗрдВрджреНрд░рдзрдиреБрд╖ рдХреЗ рд╕рднреА рд░рдВрдЧреЛрдВ рд╕реЗ рд╕рдЬрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рд╢реЗрд╖ рдкрд╛рддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдЖрдХрд░реНрд╖рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдирд╛ рдореЗрд░реА рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИред

рдкреНрд░рдпрд╛рд╕ рджреЛ


рдореИрдВ рдкреИрд░рд╛рдорд┐рдХреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдФрд░ рдЙрд╕рдХреЗ рдШрдЯрдХ SSHClient рдХреЛ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ - рдЕрдм рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ - рдХрдиреЗрдХреНрд╢рди рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИ, рдореИрдВ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд▓реЛрд╣реЗ рдХреЗ рдЗрди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрд╕рд╛рдорд╛рдиреНрдп рдЯреБрдХрдбрд╝реЛрдВ рд╕реЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреИрд╕реЗ рдирд┐рдХрд╛рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВред рдиреЗрдЯрд╡рд░реНрдХ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рджреГрд╢реНрдп рдПрдХ рдХрдорд╛рдВрдб рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рд╣реИ рдЬреЛ рдЕрдкрдиреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ TFTP рд╕рд░реНрд╡рд░ рдкрд░ рднреЗрдЬ рд╕рдХрддрд╛ рд╣реИред MikroTik рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рдпрд╣ рдкрд╣рд▓реА рдмрд╛рдд рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдмреИрдХрдЕрдк рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

/system backup save [name=]

рдЙрд╕рдХреЗ рдмрд╛рдж, рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╣реАрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдпрд╣ рдХреЗрд╡рд▓ рдПрдлрд╝рдЯреАрдкреА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ HTTP рдФрд░ TFTP рдХреЗ рд╕рд╛рде рдпрд╣ рдХреЗрд╡рд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдорд░реНрдЬ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛, рд╣рдо рдЬрд▓реНрджреА рд╕реЗ рдПрдХ рдиреНрдпреВрдирддрдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдПрдлрд╝рдЯреАрдкреА рд╕рд░реНрд╡рд░ рдмрдврд╝рд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рд╕рдореНрдорд╛рдирд┐рдд рдкрд╛рдардХреЛрдВ рдХреЗ рд▓рд┐рдП Google рдХреЗ рд▓рд┐рдП рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред

/tool fetch address= mode=ftp dst-path= src-path= user= password= upload=yes

рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЖрдкрдХреЛ рдЖрдВрддрд░рд┐рдХ рд╡рд╛рд╣рдХ рдкрд░ рдореБрдХреНрдд рд╕реНрдерд╛рди рдХреА рдердХрд╛рд╡рдЯ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрдЪрд░рд╛ рдЖрджреЗрд╢ рдХреЛ рд╕рд╛рдл рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

/file remove

рдкрд░рд┐рдгрд╛рдо


рдХреБрдЫ рдШрдВрдЯреЛрдВ рдХреЗ рд▓рд┐рдП, рдХрд▓реНрдкрдирд╛ рдиреЗ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЬрдиреНрдо рджрд┐рдпрд╛:

 #!/usr/bin/env python # -*- coding: utf-8 -*- # for SSH from paramiko import SSHClient from paramiko import AutoAddPolicy # for versioning import datetime # for file operations import os # for sleep import time # versioning Version = datetime.date.today() #print "\n" + str(Version) # hosts array IP1, IP2, IP3 hosts = ( "1.2.3.4", "5.6.7.8" , "9.10.11.12") # username users = ( "user1", "user2", "user3") iterUser = iter(users) # userpassword passwords = ( "pass1", "pass2", "pass3" ) iterPassword = iter(passwords) # FTPD IP FtpdIP = "13.14.15.16" # ftp user account ftpUser = "ftpuser" ftpPass = "ftppass" # keep backups for 4 weeks backtime = datetime.timedelta(weeks=-4) sshCli = SSHClient() sshCli.set_missing_host_key_policy(AutoAddPolicy()) print "header done" # loop host adresses for host in hosts: print "\n" + str(host) # iterate through user-password pairs user = iterUser.next() Password = iterPassword.next() # define operations CreateLocalBckp = "system backup save name=" + str(host) + "_" + str(Version) + ".backup" UploadToFtp = "tool fetch address=" + str(FtpdIP) + " mode=ftp dst-path=" + str(host) + "_" + str(Version) + ".backup src-path=" + str(host) + "_" + str(Version)+ ".backup" + " user=" + str(ftpUser) + " password=" + str(ftpPass) + " upload=yes" RemoveLocalBckp = 'file remove "' + str(host) + "_" + str(Version) + ".backup" + '"' # try for not to fail the whole script on one error try: print "connecting.." + str(host) + "@" + str(user) + ":" + str(Password) sshCli.connect(str(host), port=2022, username=str(user), password=str(Password)) print "connected.." # creating local backup print "creating local backup.. /" + CreateLocalBckp sshCli.exec_command(CreateLocalBckp) # sleep after each command because mikrotik can not do it so fast as script executes time.sleep(2) print "local backup created.." # uloading local backup to ftp print "uploading local backup to ftp.. /" + UploadToFtp sshCli.exec_command(UploadToFtp) time.sleep(2) print "backup uploaded to remote location.." # removing local backup time.sleep(2) print "removing local backup.. /" + RemoveLocalBckp sshCli.exec_command(RemoveLocalBckp) time.sleep(2) print "local backup removed.." sshCli.close() # try delete old file (if exists) try: os.remove("/tftp/" + str(host) + "_" + str(Version + backtime) +".cfg") except: print "Error while trying to delete old backup " + "/tftp/" + str(host) + "_" + str(Version + backtime) +".cfg" except: print "Error connecting to host", host 


рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣рдорд╛рд░реЗ рдПрдлрд╝рдЯреАрдкреА рд╕рд░реНрд╡рд░ рдкрд░ рдкреНрд░рддрд┐ рдорд╛рд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмреИрдХрдЕрдк рдХрд╛ рдПрдХ рд╕реЗрдЯ IP_YYYY-MM-DD.backup рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдЧреАред

рдкреБрдирд╢реНрдЪ: 3Com рд╕реНрд╡рд┐рдЪ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рди рдирд┐рд░реНрдорд╛рдг рд╣реИ рдФрд░ рдЯреЗрд▓рдиреЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдирдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ TFTP рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ - рдЕрдЧрд░ рдкрд╛рдардХреЛрдВ рдХреА рд░реБрдЪрд┐ рд╣реИ, рддреЛ рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реВрдВрдЧрд╛ред

Source: https://habr.com/ru/post/In135541/


All Articles