Bun Venit pe comunitatea All4Metin !

BackUp și clean automat

Avatar utilizator

Autorul subiectului
Andy
Mesaje: 2
Membru din: Sâm Feb 15, 2020 9:41 am
Localitate: România
Status: Însurat
Tara de origine: Romania
Zodiac:

BackUp și clean automat

Mesaj de Andy » Lun Mar 02, 2020 7:53 pm

După cum spune și titlu, un sistem care face automat backup si clean la server la o anumită perioadă de timp.

Să începem:

1. Intrăm in common/service.h și adaugăm:

Cod: Selectaţi tot

#define ENABLE_AUTO_CLEAN // Curatarea logurilor la fiecare ora
#define ENABLE_AUTO_BACKUP // Backup la fiecare 24 de ore
2. Intrăm in common/length.h și adaugăm la început:

Cod: Selectaţi tot

#include "service.h"
2.1. Cautam:

Cod: Selectaţi tot

enum EMisc
{
2.2. Și adaugăm:(de aici putem modifica și timpul)

Cod: Selectaţi tot

#ifdef ENABLE_AUTO_CLEAN
	AUTO_CLEAN_TIME		= 3600*1 // 1 ora
#endif
#ifdef ENABLE_AUTO_BACKUP
	AUTO_BACKUP_TIME	= 3600*24 // 24 ore
#endif
3. Căutăm în funcția:

Cod: Selectaţi tot

void heartbeat(LPHEART ht, int pulse)
3.1. Deasupa la funcția asta:

Cod: Selectaţi tot

	s_dwProfiler[PROF_HEARTBEAT] += (get_dword_time() - t);

	DBManager::instance().Process();
	AccountDB::instance().Process();
	CPVPManager::instance().Process();

	if (g_bShutdown)
	{
		if (thecore_pulse() > g_shutdown_disconnect_pulse)
		{
			const DESC_MANAGER::DESC_SET & c_set_desc = DESC_MANAGER::instance().GetClientSet();
			std::for_each(c_set_desc.begin(), c_set_desc.end(), ::SendDisconnectFunc());
			g_shutdown_disconnect_pulse = INT_MAX;
		}
		else if (thecore_pulse() > g_shutdown_disconnect_force_pulse)
		{
			const DESC_MANAGER::DESC_SET & c_set_desc = DESC_MANAGER::instance().GetClientSet();
			std::for_each(c_set_desc.begin(), c_set_desc.end(), ::DisconnectFunc());
		}
		else if (thecore_pulse() > g_shutdown_disconnect_force_pulse + PASSES_PER_SEC(5))
		{
			thecore_shutdown();
		}
	}
}
3.2. Adăugăm:(modificați locatia in functie de serverul vostru)

Cod: Selectaţi tot

#ifdef ENABLE_AUTO_CLEAN
	if (!(pulse % (passes_per_sec * AUTO_CLEAN_TIME))){
		if (g_bAuthServer)
		{
			std::system("cd /usr/game && sh clear.sh");
		}
	}
#endif

#ifdef ENABLE_AUTO_BACKUP
	if (!(pulse % (passes_per_sec * AUTO_BACKUP_TIME))){
		if (g_bAuthServer)
		{
			std::system("cd /usr/game && sh backup.sh");
		}
	}
#endif


Un fel de zeu