Script Python pour la sauvegarde de la base de données MySQL
- 3956
- 959
- Jeanne Dupont
Ceci est un simple script Python pour sauvegarder les bases de données MySQL à l'aide de l'utilitaire MySQLDump. Ce script a été testé avec le Python 3.5 et 2.7.15.
Comment utiliser le script
Ce script est très facile à utiliser, à télécharger ou à copier ce script sur votre système local et à l'exécuter avec Python. Ce script est capable de prendre plusieurs bases de données de sauvegarde
Sauvegarde de base de données unique: Si vous souhaitez utiliser ce script pour prendre une seule sauvegarde de la base de données, modifiez le script ci-dessous. Par exemple, le nom de la base de données est MyDB.
Db_name = 'mydb'
Sauvegarde des bases de données multiples: Pour prendre plusieurs bases de données sauvegarde, créez un fichier texte comme / sauvegarde / dbNames.txt et ajouter des bases de données noms un par ligne comme ci-dessous
# Cat / Backup / DbnName.Txt Database1 MyDB
Et ajouter ce fichier au script comme ci-dessous.
Db_name = '/ backup / dbNames.SMS'
Changer l'emplacement de la sauvegarde: Vous pouvez modifier la variable ci-dessous pour modifier l'emplacement du chemin de sauvegarde.
Backup_path = '/ backup / dbbackup /'
Script de sauvegarde Python MySQL
Cliquez ici ou utilisez la commande ci-dessous pour télécharger le script depuis github ou vous pouvez simplement copier le script ci-dessous.
#!/ usr / bin / python ############################################ ################ # # # Ce script Python est utilisé pour la sauvegarde de la base de données MySQL # Utilisation de MySQLDump et Tar Utility. # # Écrit par: Rahul Kumar # Site Web: http: // tecadmin.Net # Date de création: 03 décembre 2013 # Dernière modification: 17 août 2018 # Testé avec: Python 2.7.15 & Python 3.5 # Révision du script: 1.4 # ################################################## ########## # Importation de bibliothèques Python requises Importation du système d'exploitation Temps d'import. Assurez-vous ci-dessous que l'utilisateur a suffisamment de privilèges pour prendre la sauvegarde des bases de données. # Pour prendre plusieurs bases de données sauvegarde, créez n'importe quel fichier comme / sauvegarde / dbNames.TXT et mettez les bases de données en noms sur chaque ligne et affectées à la variable DB_NAME. Db_host = 'localhost' db_user = 'root' db_user_password = '_mysql_user_password_' #db_name = '/ backup / dbNamesList.txt 'db_name =' db_name_to_backup 'backup_path =' / backup / dbbackup '# Obtenir actuel dateTime pour créer le dossier de sauvegarde séparé comme "20180817-123433". DateTime = temps.strftime ('% y% m% d-% h% m% s') aujourd'huibackuppath = backup_path + '/' + datetime # vérification si le dossier de sauvegarde existe déjà ou non. S'il n'est pas existant. Essayez: OS.stat (aujourd'huibackuppath) sauf: OS.MKDIR (TodayBackuppath) # code pour vérifier si vous souhaitez prendre une seule sauvegarde de base de données ou assurer plusieurs sauvegardes dans DB_NAME. Imprimer ("Vérifier le fichier des noms de bases de données.") Si OS.chemin.existant (db_name): file1 = open (db_name) multi = 1 print ("Fichier de bases de données trouvé…") print ("Démarrage de la sauvegarde de tous les DB répertoriés dans le fichier" + db_name) else: print ("Fichier de données non trouvé…") Imprimer ("Démarrage de la sauvegarde de la base de données" + DB_NAME) Multi = 0 # Processus de sauvegarde de la base de données réelle de démarrage. si multi: in_file = open (db_name, "r") flength = len (in_file.lecture lines ()) dans_file.close () p = 1 dbfile = open (db_name, "r") tandis que p "+ tuyaux.Quote (aujourd'huibackuppath) + "/" + db + ".SQL "OS.système (dumpcmd) gzipcmd = "gzip" + tuyaux.Quote (aujourd'huibackuppath) + "/" + db + ".SQL "OS.système (gzipcmd) p = p + 1 dbfile.close () else: db = db_name dumpcmd = "mysqldump -h" + db_host + "-u" + db_user + "-p" + db_user_password + "" + db + ">" + tuyaux.Quote (aujourd'huibackuppath) + "/" + db + ".SQL "OS.système (dumpcmd) gzipcmd = "gzip" + tuyaux.Quote (aujourd'huibackuppath) + "/" + db + ".SQL "OS.System (gzipcmd) print ("") print ("Script de sauvegarde terminé") Print ("Vos sauvegardes ont été créées dans" "+ TodayBackuppath +" '' Directory ")12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 | #!/ usr / bin / python ############################################ ################ al.## Écrit par: Rahul Kumar # Site Web: http: // tecadmin.Net # Date de création: 03 décembre 2013 # Dernière modification: 17 août 2018 # Testé avec: Python 2.7.15 & Python 3.5 # Révision du script: 1.4 ################################################### ########## # Importation de bibliothèques Python requises Importation OSIMPORT TIMPLEIMPORT DateTimeImport Pipes # Détails de la base de données MySQL auxquels la sauvegarde doit être effectuée. Assurez-vous ci-dessous que l'utilisateur a suffisamment de privilèges pour prendre la sauvegarde des bases de données.# Pour prendre plusieurs bases de données sauvegarde, créez n'importe quel fichier comme / sauvegarde / dbNames.TXT et mettez les bases de données en noms sur chaque ligne et affectées à la variable DB_NAME. Db_host = 'localhost' db_user = 'root'db_user_password =' _mysql_user_password _ '# db_name =' / backup / dbNamesList.txt'db_name = 'db_name_to_backup'backup_path =' / backup / dbbackup '# Obtenir actuel DateTime pour créer le dossier de sauvegarde séparé comme "20180817-123433".DateTime = temps.strftime ('% y% m% d-% h% m% s') aujourd'huibackuppath = backup_path + '/' + datetime # vérification si le dossier de sauvegarde existe déjà ou non. S'il n'est pas existant.Essayez: OS.stat (aujourd'huibackuppath) sauf: OS.MKDIR (TodayBackuppath) # code pour vérifier si vous souhaitez prendre une seule sauvegarde de base de données ou assurer plusieurs sauvegardes dans DB_NAME.Imprimer ("Vérifier le fichier des noms de bases de données.") Si OS.chemin.existant (db_name): file1 = open (db_name) multi = 1 print ("Fichier de bases de données trouvé…") print ("Démarrage de la sauvegarde de tous les DB répertoriés dans le fichier" + db_name) else: print ("Fichier de données non trouvé…") Imprimer ("Démarrage de la sauvegarde de la base de données" + DB_NAME) Multi = 0 # Processus de sauvegarde de la base de données réelle de démarrage.si multi: in_file = open (db_name, "r") flength = len (in_file.lecture lines ()) dans_file.close () p = 1 dbfile = open (db_name, "r") tandis que 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 + " > "+ tuyaux.Quote (aujourd'huibackuppath) + "/" + db + ".SQL "OS.système (dumpcmd) gzipcmd = "gzip" + tuyaux.Quote (aujourd'huibackuppath) + "/" + db + ".SQL "OS.système (gzipcmd) p = p + 1 dbfile.close () else: db = db_name dumpcmd = "mysqldump -h" + db_host + "-u" + db_user + "-p" + db_user_password + "" + db + ">" + tuyaux.Quote (aujourd'huibackuppath) + "/" + db + ".SQL "OS.système (dumpcmd) gzipcmd = "gzip" + tuyaux.Quote (aujourd'huibackuppath) + "/" + db + ".SQL "OS.System (gzipcmd) print ("") print ("Script de sauvegarde terminé") Print ("Vos sauvegardes ont été créées dans" "+ TodayBackuppath +" '' Directory ") |
Exécuter le script Python
Après le téléchargement du script, faites l'exécutable du script à l'aide de la commande suivante
chmod + x dbbackup.py
et exécuter ce script comme ci-dessous
python2 dbbackup.py
Vous pouvez également planifier ce script pour s'exécuter quotidiennement à intervalle régulier en utilisant Crontab. Ajouter la commande ci-dessous dans Crontab.
0 2 * * * / usr / bin / python dbbackup.py
En savoir plus sur Crontab à 20 exemples utiles pour planifier des emplois.
Merci! pour utiliser ce script. Si vous avez une suggestion pour mon script, n'hésitez pas à m'envoyer un e-mail ou à mettre un commentaire ci-dessous. Vos commentaires m'aideront à améliorer.
- « Comment configurer Pure-FTPD avec MySQL sur Centos & Redhat
- Comment installer smplayer 0.8.6 sur Ubuntu »