Ir para conteúdo
Entre para seguir isso  
Zero

OTRestarter com sistema de Log - Código Fonte

Recommended Posts

Zero    0
Zero

Olá explorador OTNet!

 

Aqui está o código-fonte do Auto Restarter OTServ Networks que eu desenvolvi e pode ser encontrado em nossa seção Download de Utilitários.

O programa possui um sistema para reiniciar o servidor sempre que for fechado(protegendo assim contra bugs ou ataques que derrubem o servidor), e um sistema de log que registra o que acontece no servidor.

 

O projeto foi desenvolvido no Turbo C 2.0!

 

Código-fonte:

/************************ *      * * OTNet Auto Restarter * *      * ************************ * V. 1.0.0.0  * ************************ * Desenvolvido por:    * *    Zero      * ************************ * Desenvolvido em:    * *    18.11.06    * ************************ * Compilador: Turbo C    * ************************/#include <stdio.h>#include <conio.h>#include <dos.h>#include <time.h>int main(){    FILE *fArq;    int iStart;    char progName[100];    double dElapsed[3];    double dMedia;    time_t tmStart;    time_t tmDown;ini:    clrscr();    printf("OTServ Networks Auto Restartern");    printf("Desenvolvido em C por Zero!nnn");    printf("Nome do Arquivo: ");    scanf("%s", &progName);    if(fopen(progName, "r"))    {  fArq =  fopen("Log.txt", "w");  fprintf(fArq, "Log do ServidornOTServ Networks Auto Restarter - Desenvolvido por Zeron");  time(&tmStart);  fprintf(fArq, "Data: %s", asctime(localtime(&tmStart)));  fprintf(fArq, "Arquivo: %snn", progName);  fprintf(fArq, "Iniciando servidor ...n");  fclose(fArq);  iStart = 0;  while(1 > 0)  {      clrscr();      time(&tmStart);      iStart ++;      system(progName);      time(&tmDown);      dElapsed[iStart - 1] = difftime(tmDown, tmStart) / 60;      fArq = fopen("Log.txt", "a");      fprintf(fArq, "Reiniciando servidor ...n");      if(iStart == 4)      {    dMedia = (dElapsed[0] + dElapsed[1] + dElapsed[2] + dElapsed[3]) / 4;    fprintf(fArq, "nMedia de Uptime: %0.1f minutosnn", dMedia);    iStart = 0;      }      fclose(fArq);  }    }    else    {  textcolor(RED);  cprintf("nnArquivo nÆo encontrado!");  printf("nnPressione qualquer tecla para continuar ...");  getch();  textcolor(LIGHTGRAY);  goto ini;    }}
Link do Tópico: OTServ.com.br

Download: Rapidshare.de

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites
Baxnie2    0
Baxnie2

tah bom + se for assim so + 1 .bat

Compartilhar este post


Link para o post
Compartilhar em outros sites
Zero    0
Zero

É, mas deconheço comandos para Batch File que façam acesso à arquivos(para criar o Log) e que façam operações aritiméticas com valores registrados(para tirar a média de uptime).

 

De qualquer forma, obrigado pela observação. http://forum.otserv.com.br/style_emoticons/<#EMO_DIR#>/smile.gif

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites
Epaminondas    0
Epaminondas

Só duas dúvidas de noob:

 

O cabeçalho conio.h você incluiu somente para dar o getch() lá no final?

 

Não daria pra substituir o:

 

     

printf("nnPressione qualquer tecla para continuar ...");

getch();

por:

 

system("pause");

?

 

Valeu!

Epa~

Compartilhar este post


Link para o post
Compartilhar em outros sites
Epaminondas    0
Epaminondas

Só duas dúvidas de noob:

 

O cabeçalho conio.h você incluiu somente para dar o getch() lá no final?

 

Não daria pra substituir o:

 

     

printf("nnPressione qualquer tecla para continuar ...");

getch();

por:

 

system("pause");

?

 

Valeu!

Epa~

Compartilhar este post


Link para o post
Compartilhar em outros sites
Zero    0
Zero

Sim, porém a função system() abre programas dos diretórios encontrados na variável ambiente system, como o system32 e etc. E se no computador do cliente não houver um pause.exe dentro de um diretório dessa variável ou mesmo se essa variável tiver sido alterada erroneamente?

 

Prefiro fazer a minha maneira à correr os riscos por utilizar softwares de terceiros.

 

Originally posted by Epaminondas

Só duas dúvidas

Cadê a outra? http://forum.otserv.com.br/style_emoticons/<#EMO_DIR#>/smile.gif

 

Não entitule-se "noob", ter dúvidas também é "do jogo".

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites
Zero    0
Zero

Sim, porém a função system() abre programas dos diretórios encontrados na variável ambiente system, como o system32 e etc. E se no computador do cliente não houver um pause.exe dentro de um diretório dessa variável ou mesmo se essa variável tiver sido alterada erroneamente?

 

Prefiro fazer a minha maneira à correr os riscos por utilizar softwares de terceiros.

 

Originally posted by Epaminondas

Só duas dúvidas

Cadê a outra? http://forum.otserv.com.br/style_emoticons/<#EMO_DIR#>/smile.gif

 

Não entitule-se "noob", ter dúvidas também é "do jogo".

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites
Epaminondas    0
Epaminondas

Originally posted by Zero+--><div class='quotetop'>QUOTE(Zero)</div>

<!--QuoteBegin-Epaminondas

Só duas dúvidas

Cadê a outra? http://forum.otserv.com.br/style_emoticons/<#EMO_DIR#>/smile.gif

[/b]

Aqui:

 

O cabeçalho conio.h você incluiu somente para dar o getch() lá no final?

 

Valeu pela ajuda ae Zero! http://forum.otserv.com.br/style_emoticons/<#EMO_DIR#>/smile.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites
Epaminondas    0
Epaminondas

Originally posted by Zero+--><div class='quotetop'>QUOTE(Zero)</div>

<!--QuoteBegin-Epaminondas

Só duas dúvidas

Cadê a outra? http://forum.otserv.com.br/style_emoticons/<#EMO_DIR#>/smile.gif

[/b]

Aqui:

 

O cabeçalho conio.h você incluiu somente para dar o getch() lá no final?

 

Valeu pela ajuda ae Zero! http://forum.otserv.com.br/style_emoticons/<#EMO_DIR#>/smile.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites
Baxnie2    0
Baxnie2

eu axo q conio foi usado so pra isso msm + ele tbm eh usado pra fze movimento na tela

Compartilhar este post


Link para o post
Compartilhar em outros sites
Piikachu    0
Piikachu

Se o cara se dedica mesmo a fazer otserv ele vai gostar do restarter, todo bom hoster gosta de um uptime bom, até pra não ter muita dor de cabeça com os players enxendo o saco no msn...

 

Ja a comparação com o bat, não ajuda a localizar problemas q "crasham" o server pra posteriormente sejam resolvidos, eu aprovo o restarter e axo q foi uma excelente ideia ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites
Convidado b4zuc4   
Convidado b4zuc4

nao sei como funciona isso dai mas to bachando assim msm

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante   
Visitante

Nunca tinha visto isso, vou por aki...

 

vlw.! ..!

Compartilhar este post


Link para o post
Compartilhar em outros sites
FnD14    0
FnD14

clrscr();

Fala que é função que não está em uso

Primeiro use esta função

 

 

Que que eo faço?

Compartilhar este post


Link para o post
Compartilhar em outros sites
Baxnie2    0
Baxnie2

uptime eu colokaria no site do otserv

Compartilhar este post


Link para o post
Compartilhar em outros sites
Epaminondas    0
Epaminondas

Originally posted by FnD14

clrscr();

Fala que é função que não está em uso

Primeiro use esta função

 

 

Que que eo faço?

Não tinha reparado na clrscr();.

Tá ai mais um uso do cabeçalho conio.h.

 

Sobre seu problema, voce deu #include <conio.h> corretamente no começo do código?

 

Epa~

Compartilhar este post


Link para o post
Compartilhar em outros sites
Zero    0
Zero

Epaminondas, a conio.h do Turbo C é extremamente útil! :)

Eu sempre uso ela pra muitas coisas. Nesse projeto, só de olhada por alto eu vi que utilizei o clrscr(), o getch(), o textcolor() e o cprintf() e não tenho certeza se é da conio.h ou da stdio.h agora!

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
Entre para seguir isso  

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×