metin2clean 2b166b14d3 Updates
2024-10-27 06:32:26 -05:00

56 lines
2.5 KiB
Makefile

#### @martysama0134 backup scripts ####
### Inside /etc/crontab paste:
## for automatic backups every hour:
# 0 * * * * root make -C /home/serverfiles/baks/db dump
## for automatic clean of backups older than 7 days every week:
# 0 0 * * 1 root make -C /home/serverfiles/baks/db wclean
DATE != date +%Y%m%d-%H%M%S
MY_HOST = localhost
MY_USER = root
MY_PASS = your_password
MY_LOGF = log.txt
PREFIX = srv1_
OUTPATH = .
all:
@echo "available all, dump, recovery, clean, lclean, wclean, cleanall"
@echo "TEST: -u $(MY_USER) -p$(MY_PASS) -h $(MY_HOST) > $(PREFIX)$(DATE).sql"
dump:
@echo "### dump begin $(DATE)" >> $(MY_LOGF)
@mkdir $(DATE)/
@/usr/local/bin/mysqldump -u $(MY_USER) -p$(MY_PASS) -h $(MY_HOST) $(PREFIX)account | gzip -9 > $(OUTPATH)/$(DATE)/$(PREFIX)account.sql.gz 2>> $(MY_LOGF)
@/usr/local/bin/mysqldump -u $(MY_USER) -p$(MY_PASS) -h $(MY_HOST) $(PREFIX)common | gzip -9 > $(OUTPATH)/$(DATE)/$(PREFIX)common.sql.gz 2>> $(MY_LOGF)
@/usr/local/bin/mysqldump -u $(MY_USER) -p$(MY_PASS) -h $(MY_HOST) $(PREFIX)player | gzip -9 > $(OUTPATH)/$(DATE)/$(PREFIX)player.sql.gz 2>> $(MY_LOGF)
@/usr/local/bin/mysqldump --no-data -u $(MY_USER) -p$(MY_PASS) -h $(MY_HOST) $(PREFIX)log | gzip -9 > $(OUTPATH)/$(DATE)/$(PREFIX)log.sql.gz 2>> $(MY_LOGF)
@/usr/local/bin/mysqldump -u $(MY_USER) -p$(MY_PASS) -h $(MY_HOST) mysql | gzip -9 > $(OUTPATH)/$(DATE)/mysql.sql.gz 2>> $(MY_LOGF)
@echo "### dump end $(DATE)" >> $(MY_LOGF)
recovery:
@echo "### recovery begin $(DATE)" >> $(MY_LOGF)
@gunzip < mysql.sql.gz | mysql -u $(MY_USER) -p$(MY_PASS) -h $(MY_HOST) mysql 2>> $(MY_LOGF)
@gunzip < $(PREFIX)account.sql.gz | mysql -u $(MY_USER) -p$(MY_PASS) -h $(MY_HOST) $(PREFIX)account 2>> $(MY_LOGF)
@gunzip < $(PREFIX)common.sql.gz | mysql -u $(MY_USER) -p$(MY_PASS) -h $(MY_HOST) $(PREFIX)common 2>> $(MY_LOGF)
@gunzip < $(PREFIX)player.sql.gz | mysql -u $(MY_USER) -p$(MY_PASS) -h $(MY_HOST) $(PREFIX)player 2>> $(MY_LOGF)
@gunzip < $(PREFIX)log.sql.gz | mysql -u $(MY_USER) -p$(MY_PASS) -h $(MY_HOST) $(PREFIX)log 2>> $(MY_LOGF)
@echo "### recovery end $(DATE)" >> $(MY_LOGF)
clean:
@find $(OUTPATH) ! -name Makefile ! -name $(OUTPATH) -exec rm -rf {} +
lclean:
@cat /dev/null > $(MY_LOGF)
wclean:
@echo "### clean week begin $(DATE)" >> $(MY_LOGF)
@find $(OUTPATH) ! -name Makefile ! -name $(OUTPATH) -type d -mtime +7 -print -exec rm -rf {} + >> $(MY_LOGF)
@echo "### clean week end $(DATE)" >> $(MY_LOGF)
cleanall: clean lclean
@echo "### clean all done $(DATE)" >> $(MY_LOGF)