Tool Script backup automatico file server e database in python

Stato
Discussione chiusa ad ulteriori risposte.

Cappuccino

Utente Jade
2 Agosto 2014
1,963
123
813
931
Ultima modifica:
Ciao a tutti, vi rilascio questo script che ho fatto per il mio server sperando che possa tornarvi utile
Python:
"""
Questo script serve per effettuare un backup automatico del server (sia dei files che del database)
Per fare il backup solo del database eseguire il comando:
python backup.py --database
Per fare il backup solo della cartella dei files eseguire il comando:
python backup.py --files
Per fare il backup sia dei files che del database eseguire il comando:
python backup.py
Per impostare il backup automatico modificare il file /etc/crontab e aggiungere alla fine questa riga
*/30    *   *   *   *   root    /usr/local/bin/python /mt2/backup.py
Al posto di */30 mettere ogni quanti minuti si vuole che venga fatto il backup
Al posto di /mt2/backup.py mettere la path del file backup.py
Se per esempio volete fare il backup della cartella ogni due ore e il backup del database ogni 15 minuti, potete fare cosi
*/15    *   *   *   *   root    /usr/local/bin/python /mt2/backup.py --database
0       */2 *   *   *   root    /usr/local/bin/python /mt2/backup.py --files

Riavviare crontab con il comando
/etc/rc.d/cron restart
Per funzionare lo script ha bisogno di python e 7z che potete installare con questi comandi:
pkg install p7zip
pkg install python
"""
import os
import time
import sys
today_date = time.strftime("%d-%m-%Y")
time_now = time.strftime("%H-%M")
db_user = "root"
db_password = "franzi"
m2_path = "/mt2/"
def make_dir(dir_name):
    if not os.path.exists(dir_name):
        os.makedirs(dir_name)
def backup_db():
    print("Backup del database in corso...")
    os.system("/usr/local/bin/mysqldump -u %s -p%s account > account.sql" % (db_user, db_password))
    os.system("/usr/local/bin/mysqldump -u %s -p%s player > player.sql" % (db_user, db_password))
    os.system("/usr/local/bin/mysqldump -u %s -p%s common > common.sql" % (db_user, db_password))
    os.system("/usr/local/bin/mysqldump -u %s -p%s hotbackup > hotbackup.sql" % (db_user, db_password))
    os.system("/usr/local/bin/mysqldump -u %s -p%s log > log.sql" % (db_user, db_password))
def backup_files():
    print("Backup della cartella %s in corso..." % m2_path)
    os.system("/usr/local/bin/7z a backup.7z -xr!backup %s" % m2_path)
if __name__ == "__main__":
    arg0 = str(sys.argv[1]) if len(sys.argv) else None
    # create and move to backup directory
    make_dir("backup")
    os.chdir("backup")
    make_dir(today_date)
    os.chdir(today_date)
    make_dir(time_now)
    os.chdir(time_now)
    if arg0 == "--database":
        backup_db()
    elif arg0 == "--files":
        backup_files()
    elif arg0 == None:
        backup_db()
        backup_files()
 
Stato
Discussione chiusa ad ulteriori risposte.