در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

آموزش پایتون برای مهندسین شبکه قسمت 2: بکاپ گیری از تجهیزات سیسکو

امروز و در ادامه دوره آموزشی پایتون (Python) برای مهندسین شبکه به معرفی اسکریپت تهیه بک آپ از تجهیزات سیسکو می پردازم. به عنوان یک مهندس شبکه حتما به یک ابزار برای تهیه بک آپ خودکار از پیکربندی های تجهیزات سیسکو نیاز پیدا کردید. ابزارهایی زیادی در این خصوص وجود دارد مثل   Manage Engine Device Expert  و یا Cisco Prime  ولی نصب و راه اندازی این نرم افزارها قدری زمانبر و نیاز به خرید لایسنس یا کرک کردن برنامه دارد که پیشنهاد نمی شود.

از طریق اسکریپت زیر می تونید فایل متنی شامل آدرس IP  سوییچ ها ( یا روترها و حتی فایروال) را بخونید و پس از ارتباط SSH  با تک تک تجهیزات،  نسبت به تهیه بک آپ از تجهیز و انتقال به یک سرور TFTP  اقدام کنید.

 


#----------------------------------------------------
# Backup Cisco Device  By Python
# By : Hessam Hosseini
# Email : hessam.hosseyni@gmail.com
# Tel : 0912 0612 305 
#----------------------------------------------------

#------------------------------------------------- Get User and Password of Switch -----------------------------------
username=input("\n\nUsername:  ")
password=getpass(prompt='Password:  ')
enable_pass=getpass(prompt='Enable Password:  ')
#------------------------------------------------- Read Switch List from file -----------------------------------
with open('Switch_list.txt') as f:
 devices_list = f.read().splitlines()
 for device in devices_list:
  DVIP = device
  print (Style.DIM + Fore.WHITE + "\n-------------------------------------------------------")
  print (Style.DIM + Fore.WHITE + "\nConnecting to " + DVIP + " ..." + Style.RESET_ALL)
    
#------------------------------------------------- SSH to Device -----------------------------------
  sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)    #IPv4 , TCP Connection
  result = sock.connect_ex((DVIP,22))
  if result != 0:
   print (Style.DIM + Fore.YELLOW + " SSH Port on Switch " + DVIP + " is close." + Style.RESET_ALL)
   continue
  sock.close()

  try:
   remote_conn_pre=paramiko.SSHClient()
   remote_conn_pre.set_missing_host_key_policy(paramiko.AutoAddPolicy())
   remote_conn_pre.connect(DVIP,username=username,password=password,look_for_keys=False,allow_agent=False)
   print(Style.DIM + Fore.CYAN + " SSH Connection to %s established."  %DVIP + Style.RESET_ALL)
  
  except Exception as e:
   print(Style.BRIGHT + Fore.YELLOW + " SSH Connection to %s  : Authentication Failed."  %DVIP + Style.RESET_ALL)
   continue
#------------------------------------------------- Configuration -----------------------------------
  remote_conn.send('enable\n')
  remote_conn.send(enable_pass+'\n')
  remote_conn.send('configure terminal\n')
  
  remote_conn.send('exit\n')
  remote_conn.send('write\n')
  print(Style.DIM + Fore.GREEN + " %s Configuration has been saved."  %DVIP + Style.RESET_ALL)
#------------------------------------------------- Check the TFTP Server -----------------------------------
  sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)    #IPv4 , UDP Connection
  result = sock.connect_ex((tftp_server,69))
  #print (result)
  if result == 0:
   print(Style.DIM + Fore.GREEN + " TFTP Server of %s is accessible from %s." %(tftp_server,DVIP) + Style.RESET_ALL) 
   sock.close()
  else:
   print(Style.DIM + Fore.GREEN + " TFTP Server of %s is not accessible from %s." %(tftp_server,DVIP) + Style.RESET_ALL) 
   continue
#------------------------------------------------- Backup to TFTP -----------------------------------
  remote_conn.send('copy startup-config tftp:\n')
  remote_conn.send(tftp_server+'\n')
  remote_conn.send(DVIP+'---'+date+'\n')
  time.sleep(6)
  output = remote_conn.recv(65535)
  
  if 'bytes copied in' in str(output):
   print(Style.BRIGHT + Fore.RED + " %s Successfully Backed up."  %DVIP + Style.RESET_ALL)
  else:
   print(Style.BRIGHT + Fore.RED + " %s Could not get Backed up."  %DVIP + Style.RESET_ALL)
#------------------------------------------------- Close SSH -----------------------------------
  remote_conn.close()
  print(Style.DIM + Fore.CYAN + " SSH Connection to %s was closed."  %DVIP + Style.RESET_ALL)
 

 

توضیح بیشتر اینکه برای اجرای اسکریپت فوق ابتدا باید پایتون 3 را دانلود و نصب کنید و از خط فرمان ، با دستور زیر اسکریپت را اجرا کنید
 
C:\>python cisco-backup.py

 

در این دوره آموزشی فرض بر این است که شما دوره مقدماتی پایتون رو پشت سر گذاشتید و با مفاهیم و Syntax  زبان پایتون آشنایی دارید ولی باز هم چنانچه در مورد نحوه عملکرد اسکریپت و یا چگونگی اجرای آن ابهامی داشتید من در خدمت هستم.

 

  • نویسنده : سیدحسام الدین حسینی
  • منبع : جزیره سیسکو وب سایت توسینسو

 

عنوان
1 آموزش پایتون برای مهندسین شبکه قسمت 1 : پیکربندی تجهیزات سیسکو رایگان
2 آموزش پایتون برای مهندسین شبکه قسمت 2: بکاپ گیری از تجهیزات سیسکو رایگان
3 آموزش پایتون برای مهندسین شبکه قسمت 3: مانیتورینگ وب سایت سازمان رایگان
زمان و قیمت کل 0″ 0
0 نظر

هیچ نظری ارسال نشده است! اولین نظر برای این مطلب را شما ارسال کنید...

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره پاییزه می تونی امروز ارزونتر از فردا خرید کنی ....