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()