Skrip python untuk cadangan database mysql

Skrip python untuk cadangan database mysql

Ini adalah skrip python sederhana untuk membuat cadangan database mysql menggunakan utilitas mysqldump. Script ini telah diuji dengan Python 3.5 dan 2.7.15.

Cara menggunakan skrip

Script ini sangat mudah digunakan, unduh, atau salin skrip ini di sistem lokal Anda dan jalankan dengan Python. Skrip ini mampu mengambil beberapa database cadangan

Pencadangan database tunggal: Jika Anda ingin menggunakan skrip ini untuk mengambil cadangan database tunggal, edit skrip seperti di bawah ini. Misalnya nama basis data adalah mydb.

 Db_name = 'mydb' 

Cadangan beberapa database: Untuk mengambil beberapa database cadangan, buat file teks seperti /cadangan /dbNames.txt dan tambahkan nama basis data satu per baris seperti di bawah ini

# kucing /cadangan /dbnames.txt database1 mydb 

Dan tambahkan file ini ke skrip seperti di bawah ini.

 Db_name = '/cadangan/dbnames.txt' 

Ubah Lokasi Cadangan: Anda dapat mengubah variabel di bawah ini untuk mengubah lokasi jalur cadangan.

 Backup_path = '/backup/dbbackup/' 

Python MySQL Backup Script

Klik di sini atau gunakan perintah di bawah ini untuk mengunduh skrip dari GitHub atau Anda dapat menyalin skrip di bawah ini.

#!/usr/bin/python ############################################ #################skrip python ini digunakan untuk cadangan database mysql#menggunakan mysqldump dan utilitas tar. # # Ditulis oleh: Rahul Kumar # Situs web: http: // tecadmin.Net # Dibuat Tanggal: 03 Des 2013 # Terakhir Modifikasi: 17 Agustus 2018 # Diuji dengan: Python 2.7.15 & Python 3.5 # revisi skrip: 1.4################################################## ;. Pastikan pengguna di bawah ini memiliki hak istimewa yang cukup untuk mengambil cadangan database. # Untuk mengambil beberapa basis data cadangan, buat file seperti /cadangan /dbNames apa pun.txt dan letakkan nama basis data satu di setiap baris dan ditugaskan ke variabel db_name. Db_host = 'localhost' db_user = 'root' db_user_password = '_mysql_user_password_' #db_name = '/cadangan/dbnameslist.txt 'db_name =' db_name_to_backup 'backup_path ='/backup/dbbackup ' # mendapatkan datetime saat ini untuk membuat folder cadangan terpisah seperti "20180817-123433" ". Datetime = waktu.strftime ('%y%m%d-%h%m%s') todaybackuppath = backup_path + '/' + datetime # Memeriksa jika folder cadangan sudah ada atau tidak. Jika tidak ada akan membuatnya. Coba: OS.Stat (TodayBackuppath) Kecuali: OS.MKDIR (TodayBackuppath) # Kode untuk memeriksa jika Anda ingin mengambil cadangan database tunggal atau menabrak beberapa cadangan di DB_NAME. cetak ("Memeriksa file nama basis data.") Jika OS.jalur.ada (db_name): file1 = buka (db_name) multi = 1 cetak ("File database yang ditemukan ...") cetak ("Mulai cadangan semua DB yang terdaftar dalam file" + db_name) else: print ("File database tidak ditemukan ...") Print ("Mulai Cadangan Database" + db_name) multi = 0 # Memulai proses cadangan database aktual. Jika multi: in_file = buka (db_name, "r") flength = len (in_file.readlines ()) in_file.tutup () p = 1 dbfile = buka (db_name, "r") sementara p " + pipa.Kutipan (TodayBackuppath) + "/" + db + ".SQL "OS.Sistem (dumpcmd) gzipcmd = "gzip" + pipa.Kutipan (TodayBackuppath) + "/" + db + ".SQL "OS.Sistem (GZIPCMD) P = P + 1 DBFile.tutup () else: db = db_name dumpcmd = "mysqldump -h" + db_host + "-u" + db_user + "-p" + db_user_password + "" + db + ">" + + Pipes.Kutipan (TodayBackuppath) + "/" + db + ".SQL "OS.Sistem (dumpcmd) gzipcmd = "gzip" + pipa.Kutipan (TodayBackuppath) + "/" + db + ".SQL "OS.System (GZIPCMD) Print ("") Print ("Skrip Cadangan Selesai") Print ("Cadangan Anda telah dibuat di '" + TodayBackuppath + "' Direktori")
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182#!/usr/bin/python ############################################ ################ skrip python ini digunakan untuk cadangan database mysql#menggunakan mysqldump dan utilitas tar.## Ditulis oleh: Rahul Kumar# Situs web: http: // tecadmin.Net# Dibuat Tanggal: 03 Des 2013# Terakhir Modifikasi: 17 Agustus 2018# Diuji dengan: Python 2.7.15 & Python 3.5# revisi skrip: 1.4 ################################################### ;. Pastikan pengguna di bawah ini memiliki hak istimewa yang cukup untuk mengambil cadangan database.# Untuk mengambil beberapa basis data cadangan, buat file seperti /cadangan /dbNames apa pun.txt dan letakkan nama basis data satu di setiap baris dan ditugaskan ke variabel db_name. Db_host = 'localhost' db_user = 'root'db_user_password =' ​​_mysql_user_password _ '#db_name ='/cadangan/dbNamesList.txt'db_name = 'db_name_to_backup'backup_path ='/cadangan/dbbackup ' # mendapatkan datetime saat ini untuk membuat folder cadangan terpisah seperti "20180817-123433" ".Datetime = waktu.strftime ('%y%m%d-%h%m%s') todaybackuppath = backup_path + '/' + datetime # Memeriksa jika folder cadangan sudah ada atau tidak. Jika tidak ada akan membuatnya.Coba: OS.Stat (TodayBackuppath) Kecuali: OS.MKDIR (TodayBackuppath) # Kode untuk memeriksa jika Anda ingin mengambil cadangan database tunggal atau menabrak beberapa cadangan di DB_NAME.cetak ("Memeriksa file nama basis data.") Jika OS.jalur.ada (db_name): file1 = buka (db_name) multi = 1 cetak ("File database yang ditemukan ...") cetak ("Mulai cadangan semua DB yang terdaftar dalam file" + db_name) else: print ("File database tidak ditemukan ...") Print ("Mulai Cadangan Database" + db_name) multi = 0 # Memulai proses cadangan database aktual.Jika multi: in_file = buka (db_name, "r") flength = len (in_file.readlines ()) 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 + " > " + pipa.Kutipan (TodayBackuppath) + "/" + db + ".SQL "OS.Sistem (dumpcmd) gzipcmd = "gzip" + pipa.Kutipan (TodayBackuppath) + "/" + db + ".SQL "OS.Sistem (GZIPCMD) P = P + 1 DBFile.tutup () else: db = db_name dumpcmd = "mysqldump -h" + db_host + "-u" + db_user + "-p" + db_user_password + "" + db + ">" + + Pipes.Kutipan (TodayBackuppath) + "/" + db + ".SQL "OS.Sistem (dumpcmd) gzipcmd = "gzip" + pipa.Kutipan (TodayBackuppath) + "/" + db + ".SQL "OS.System (GZIPCMD) Print ("") Print ("Skrip Cadangan Selesai") Print ("Cadangan Anda telah dibuat di '" + TodayBackuppath + "' Direktori")

Jalankan skrip Python

Setelah mengunduh skrip membuat skrip dapat dieksekusi menggunakan perintah berikut

chmod +x dbbackup.py 

dan jalankan skrip ini seperti di bawah ini

python2 dbbackup.py 

Anda juga dapat menjadwalkan skrip ini untuk berjalan setiap hari secara berkala menggunakan crontab. Tambahkan perintah di bawah ini di crontab.

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

Baca lebih lanjut tentang crontab di 20 contoh yang berguna untuk menjadwalkan pekerjaan.

Terima kasih! untuk menggunakan skrip ini. Jika Anda memiliki saran untuk skrip saya, jangan ragu untuk mengirim email kepada saya atau memberikan komentar di bawah. Umpan balik Anda akan membantu saya membuatnya lebih baik.