MySQL remote backup with python

สวัสดีครับเพื่อน ๆ วันนี้ผมมาพร้อมกับความขี้เกียจครับ ดังนั้นผมเลยจะมาแชร์ความขี้เกียจให้ได้อ่านกัน เนื่องจากผมต้องทำการ backup MySQL database ทุกวันแต่ว่าบางทีเราก็มีอะไรต้องทำ และไม่ได้ว่างมานั่งทำตลอดดังนั้นจึงได้เขียน Python script ขึ้นมาเพื่อสนองความขี้เกียจของตัวเองนะครับ (ปล. จริง ๆ เอาไปใช้ในงานกลุ่มได้ด้วย อิอิ)

อันดับแรก Library ที่ผมใช้จะมี 2 ตัวคือ Paramiko ใช้สำหรับทำ remote ssh และ time ใช้สำหรับสแตมป์วันที่ต่อท้าย backup file นะครับ ไปดู code กันเลยดีก่าครับ

import paramiko
import time

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
    ssh.connect('Your Remote IP', username='Your remote account', password='Your remote password')
except paramiko.SSHException:
    print("Connection Failed")
    quit()

stdin, stdout, stderr = ssh.exec_command("mysqldump -u Your account -pYour password Target-DB > backup.sql")
tFormat = "%d-%m-%Y"
timeStartDay = time.strftime(tFormat)
backup_name = "backup-from-" + timeStartDay + ".sql"
sftp = ssh.open_sftp()
sftp.get('backup.sql', backup_name)
sftp.close()

ssh.close()

...

จะเห็นว่า Code เพียงสิบกว่าบรรทัดก็ทำให้ชีวิตผมดีขึ้นกว่าแต่ก่อนเยอะมากครับ

ถ้าเขียน Python ได้ลองอ่านดูคงเข้าใจครับ อาจจะต้องไปอ่าน SQL เพิ่มด้วยครับ

No comments:

Post a Comment

วิธีการติดตั้ง และตั้งค่า Apache2 พร้อมเปิดใช้งาน HTTPS ด้วยวิธี Self-Sign บน Ubuntu 18.04.1 LTS

ดีจร้า วันนี้ช่วงเช้าว่างเลยมาเขียนบทความเพิ่มเติมเกี่ยวกับการติดตั้ง และตั้งค่า Apache2 ให้สามารถใช้งานผ่าน HTTPS ได้กันมาเริ่มกันเลยครับ ...