Skrip Python untuk Backup Pangkalan Data MySQL

Skrip Python untuk Backup Pangkalan Data MySQL

Ini adalah skrip python mudah untuk membuat sandaran pangkalan data MySQL menggunakan utiliti mysqldump. Skrip ini telah diuji dengan Python 3.5 dan 2.7.15.

Cara Menggunakan Skrip

Skrip ini sangat mudah digunakan, memuat turun atau menyalin skrip ini pada sistem tempatan anda dan laksanakan dengan Python. Skrip ini mampu mengambil sandaran pangkalan data

Sandaran pangkalan data tunggal: Sekiranya anda ingin menggunakan skrip ini untuk mengambil sandaran pangkalan data tunggal, edit skrip seperti di bawah. Contohnya nama pangkalan data ialah mydb.

 Db_name = 'mydb' 

Sandaran Pangkalan Data Pelbagai: Untuk mengambil sandaran pelbagai pangkalan data, buat fail teks seperti /sandaran /dbnames.txt dan tambahkan nama pangkalan data satu setiap baris seperti di bawah

# kucing /sandaran /dbnames.TXT DATABASE1 MYDB 

Dan tambahkan fail ini ke skrip seperti di bawah.

 Db_name = '/sandaran/dbnames.txt ' 

Tukar Lokasi Sandaran: Anda boleh menukar di bawah pembolehubah untuk menukar lokasi laluan sandaran.

 Backup_path = '/sandaran/dbbackup/' 

Skrip sandaran python mython

Klik di sini atau gunakan arahan di bawah untuk memuat turun skrip dari GitHub atau anda hanya boleh menyalin skrip di bawah.

#!/usr/bin/Python ############################################### ################skrip python ini digunakan untuk sandaran pangkalan data mysql#menggunakan utiliti mysqldump dan tar. # # Ditulis oleh: Rahul Kumar # Laman Web: http: // tecadmin.Net # Dibuat Tarikh: 03 Dis, 2013 # Terakhir diubahsuai: 17 Ogos 2018 # Diuji dengan: Python 2.7.15 & python 3.5 # semakan skrip: 1.4################################################# ###########Import Perpustakaan Python Diperlukan Import OS Import Masa Import DateTime Pipes Import#Mysql Butiran Pangkalan Data Mysql yang mana sandaran akan dilakukan. Pastikan di bawah pengguna mempunyai keistimewaan yang mencukupi untuk mengambil sandaran pangkalan data. # Untuk mengambil sandaran pelbagai pangkalan data, buat sebarang fail seperti /sandaran /dbnames.txt dan letakkan nama pangkalan data pada setiap baris dan ditugaskan ke pemboleh ubah db_name. Db_host = 'localhost' db_user = 'root' db_user_password = '_mysql_user_password_' #db_name = '/sandaran/dbNamesList.txt 'db_name =' db_name_to_backup 'backup_path ='/sandaran/dbbackup ' # mendapatkan datetime semasa untuk membuat folder sandaran berasingan seperti "20180817-123433". Datetime = masa.strftime ('%y%m%d-%h%m%s') todaybackupath = backup_path + '/' + datetime # memeriksa jika folder sandaran sudah ada atau tidak. Sekiranya tidak ada akan menciptanya. Cuba: OS.Stat (Todaybackuppath) Kecuali: OS.Kod MKDIR (TodayBackuppath) untuk memeriksa jika anda ingin mengambil sandaran pangkalan data tunggal atau sandaran berbilang di db_name. Cetak ("Memeriksa fail nama pangkalan data.") Sekiranya OS.jalan.wujud (db_name): file1 = buka (db_name) multi = 1 cetak ("Fail pangkalan data yang dijumpai ...") cetak ("memulakan sandaran semua DBS yang disenaraikan dalam fail" + db_name) lain: cetak ("Fail pangkalan data tidak dijumpai ...") Cetak ("Memulakan sandaran pangkalan data" + db_name) multi = 0 # Memulakan proses sandaran pangkalan data sebenar. jika multi: in_file = buka (db_name, "r") flength = len (in_file.bacaan ()) in_file..Quote (TodayBackuppath) + "/" + db + ".SQL "OS.sistem (dumpcmd) gzipcmd = "gzip" + paip.Quote (TodayBackuppath) + "/" + db + ".SQL "OS.sistem (gzipcmd) p = p + 1 dbfile.Tutup () lain: db = db_name dumpcmd = "mysqldump -h" + db_host + "-u" + db_user + "-p" + db_user_password + "" + db + ">.Quote (TodayBackuppath) + "/" + db + ".SQL "OS..Quote (TodayBackuppath) + "/" + db + ".SQL "OS.Sistem (GZIPCMD) Cetak ("") cetak ("Skrip sandaran siap") Cetak ("Backup anda telah dibuat dalam '" TOYBACKUPPATH + "' Direktori")
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182#!/usr/bin/Python ############################################### ################ skrip python ini digunakan untuk sandaran pangkalan data mysql#menggunakan utiliti mysqldump dan tar.## Ditulis oleh: Rahul Kumar# Laman Web: http: // tecadmin.Net# Dibuat Tarikh: 03 Dis, 2013# Terakhir diubahsuai: 17 Ogos 2018# Diuji dengan: Python 2.7.15 & python 3.5# semakan skrip: 1.4 ################################################ ###########Import Perpustakaan Python Diperlukan Import Osimport TimeImport DateTimeImport Pipes#Mysql Database Butiran yang mana sandaran akan dilakukan. .# Untuk mengambil sandaran pelbagai pangkalan data, buat sebarang fail seperti /sandaran /dbnames.txt dan letakkan nama pangkalan data pada setiap baris dan ditugaskan ke pemboleh ubah db_name. Db_host = 'localhost' db_user = 'root'db_user_password =' ​​_mysql_user_password _ '#db_name ='/sandaran/dbnameslist.txt'db_name = 'db_name_to_backup'backup_path ='/sandaran/dbbackup ' # Mendapatkan datetime semasa untuk membuat folder sandaran berasingan seperti "20180817-123433".Datetime = masa.strftime ('%y%m%d-%h%m%s') todaybackupath = backup_path + '/' + datetime # memeriksa jika folder sandaran sudah ada atau tidak. Sekiranya tidak ada akan menciptanya.Cuba: OS.Stat (Todaybackuppath) Kecuali: OS.Kod MKDIR (TodayBackuppath) untuk memeriksa jika anda ingin mengambil sandaran pangkalan data tunggal atau sandaran berbilang di db_name.Cetak ("Memeriksa fail nama pangkalan data.") Sekiranya OS.jalan.wujud (db_name): file1 = buka (db_name) multi = 1 cetak ("Fail pangkalan data yang dijumpai ...") cetak ("memulakan sandaran semua DBS yang disenaraikan dalam fail" + db_name) lain: cetak ("Fail pangkalan data tidak dijumpai ...") Cetak ("Memulakan sandaran pangkalan data" + db_name) multi = 0 # Memulakan proses sandaran pangkalan data sebenar.jika multi: in_file = buka (db_name, "r") flength = len (in_file.bacaan ()) in_file.tutup () p = 1 dbfile = buka (db_name, "r") sementara p <= flength: db = dbfile.readline() # reading database name from file db = db[:-1] # deletes extra line dumpcmd = "mysqldump -h " + DB_HOST + " -u " + DB_USER + " -p" + DB_USER_PASSWORD + " " + db + " > " + paip.Quote (TodayBackuppath) + "/" + db + ".SQL "OS.sistem (dumpcmd) gzipcmd = "gzip" + paip.Quote (TodayBackuppath) + "/" + db + ".SQL "OS.sistem (gzipcmd) p = p + 1 dbfile.Tutup () lain: db = db_name dumpcmd = "mysqldump -h" + db_host + "-u" + db_user + "-p" + db_user_password + "" + db + ">.Quote (TodayBackuppath) + "/" + db + ".SQL "OS.sistem (dumpcmd) gzipcmd = "gzip" + paip.Quote (TodayBackuppath) + "/" + db + ".SQL "OS.Sistem (GZIPCMD) Cetak ("") cetak ("Skrip sandaran siap") Cetak ("Backup anda telah dibuat dalam '" TOYBACKUPPATH + "' Direktori")

Laksanakan skrip Python

Setelah memuat turun skrip menjadikan skrip boleh dilaksanakan menggunakan arahan berikut

chmod +x dbbackup.py 

dan laksanakan skrip ini seperti di bawah

python2 dbbackup.py 

Anda juga boleh menjadualkan skrip ini untuk dijalankan setiap hari secara berkala menggunakan Crontab. Tambahkan arahan di bawah dalam Crontab.

0 2 * * */usr/bin/python dbbackup.py 

Baca lebih lanjut mengenai Crontab di 20 contoh berguna untuk menjadualkan pekerjaan.

Terima kasih! kerana menggunakan skrip ini. Sekiranya anda mempunyai cadangan untuk skrip saya, jangan ragu untuk menghantar e -mel kepada saya atau meletakkan komen di bawah. Maklum balas anda akan membantu saya menjadikannya lebih baik.