shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] replicação( O/T )


From: Julio C. Neves
Subject: Re: [shell-script] replicação( O/T )
Date: Tue, 2 Jan 2007 11:00:59 -0200

Pois é Miranda, entendi o seu recado. Vc se esqueceu somente que o Tiago é
moderador há somente um mês. Quero ver qtas vezes ele irá repetir a mesma
ladainha antes de sair detonando as pessoas que *insistem* em permanecer no
OT.

Por outro lado, quero deixar bastante claro que: se por acaso eu não
estivesse de férias qdo rolou este OT na lista, estariam todos detonados.

Miranda, acho que não nos conhecemos, mas os principais personagens do SL de
MG são meus amigos (Bruxo, Meira, Mussy, Global, ...) e todos poderão
atestar que tb sou fino no trato, porém paciência tem limite, inclusive para
ficar aqui justificando o que não necessita justificativa, pois está na
regra do jogo.

As regras de uma sociedade foram feitas para serem seguidas pelos sócios,
aqueles que não concordam com as referidas regras não entram para essa
sociedade ou dela são banidos. Colocando isso de forma mais ampla, nesse
momento estou precisando de dinheiro. Ora, o banco está cheio de dinheiro,
mas nem penso em pegá-lo, pois caso o faça, serei banido da sociedade, indo
para a cadeia.

Uma última sugestão, se vc acha que eu e o Eriberto somos pouco polidos no
trato com o pessoal da lista, porque vc não abre outra mais complacente e
condescendente? Vou te responder: pq não funciona! Se temos uma lista sobre
shell, não podemos nos perder em MySQL, pois o que nos une é o interesse
pelo Shell. Eu, por exemplo, não tenho o menor interesse pelo MySQL pq nunca
o usei nem pretendo fazê-lo, mas existe uma lista específica sobre isso
(moderada pelo Helvécio, que tb é daí de MG e para mim é quem mais entende
de MySQL no Brasil) que só fala em Shell, se for necessário usá-lo para
resolver um problema com MySQL.

Aí sim Miranda, eu acho que poderia usar a sua frase (fazendo as correções):
"O mundo seria bem melhor se mais gente fosse tão sensata na abordagem das
"diferenças"". Pois estas sim, são as verdadeiras diferenças. São tão
diferentes que estão até escritas em regras.

Alô lista, peço a vcs desculpas por este desabafo, mas creio que já
conversei pessoalmente com pelo menos metade dos quase 3000 associados da
nossa lista pelos eventos de SL por este Brasil a fora, e muitos de vcs
devem saber que eu e o Eriberto passamos os fins de semana separados das
famílias, dando minicursos e fazendo palestras gratuitamente para divulgar o
SL, nos dedicando de corpo e alma à causa. Garanto que se as pessoas que
vivem se queixando de tudo, se usassem o tempo gasto inutilmente nas
reclamaçãoes para ajudar e divulgar o SL, estaríamos muito à frente do
atualmente somos.

Abraços a todos e feliz 2007,
Julio
:wq

2007/1/2, Miranda <address@hidden>:
>
> Gostaria de parabenizar publicamente a fineza com que
> o Thiago levou a questão do off-topic .
> O mundo seria bem melhor se mais gente fosse tão sensato
> quanto o colega na abordagem das "diferenças"
>
> On Thu, 2006-12-28 at 14:20 -0200, Tiago Barcellos Peczenyj wrote:
> > Por favor,
> >
> > TODOS os interessados em ajudar o Sr Fernando nas suas atividades de
> > banco de dados e que saiam do escopo da lista o façam em PVT para ele
> > atraves do email: address@hidden
> >
> > Imagino que muitos da lista de shell script (incluindo eu) terão o
> > prazer de ajudar no uso das ferramentas mágicas do universo NIX quando
> > a questão rumar para "usar shell script". Se for imprescindível usar
> > uma ferramenta não usual de forma integrada com alguma fagulha de
> > shell script, que seja informado um link externo como o sourceforge, a
> > pagina do criador da ferramenta ou, em ultimo caso, o codigo fonte no
> > pastebin (que possui syntax highlight!!) -- http://pastebin.com/
> >
> > Lembrando que no rodapé da lista é possivel ler:
> >
> > Esta lista não admite a abordagem de outras liguagens de programação,
> > como perl, C etc. Quem insistir em não seguir esta regra será moderado
> > sem prévio aviso.
> >
> > Quem não concordar entre em contato em PVT, boas entradas de ano novo
> > à todos.
> >
> > On 12/28/06, address@hidden
> > <address@hidden> wrote:
> > >
> > >
> > >
> > >
> > >
> > >
> > > olá Fernando,
> > >
> > > Realmente você está fora do escopo da lista, mas vamos lá, O que eu
> > > percebi é que você não pode apagar a tabela, então nem o rsync nem o
> > > mysqldump. A solução do Remulo é a mais indicada, porem pelo que
> > você
> > > falou nenhuma das aplicações é slave ou master, e sim dois bancos
> > > redundantes. Uma saída que utilizo é o datapipe, que você roda em um
> > dos
> > > lados com a porta do mysql, assim quando acessar o banco(fará isso
> > > normalmente, como se fosse local) os dados serão processados no
> > servidor
> > > que está apontando. estou enviando o source do datapipe, só de o
> > comando
> > >
> > > gcc -o datapipe pipefakeps.c
> > >
> > > Atenciosamente,
> > >
> > > Rangel Perez Sardinha
> > > <address@hidden>
> > >
> > > =====================================
> > > Pragya Technologies Brazil
> > >
> > > Rua Alagoas, 135
> > > Ribeirao Preto - SP - Brasil
> > > Mobile: +55 16 9137 8609
> > > Office: +55 16 3904 9657
> > > =====================================
> > >
> > > -----Corte aqui <pipefakeps.c>-----------------
> > > /*
> > >
> > > The following is an interesting snippet of code I wrote recently. It
> > > makes a data pipe between a listen port on the machine it's being
> > run on
> > > and a port on a remote machine. For example, running
> > > datapipe 2222 23 your.machine.com
> > >
> > > would create a port 2222 on the local machine that, if telnetted to,
> > > would
> > > be the same as telnetting to port 23 on your.machine.com. This can
> > be
> > > used
> > > for a variety of purposes: redirect IRC connections so that identd
> > shows
> > > the username of the datapipe process; redirect sendmail direct
> > > connections
> > > for the same reason; even use on a firewall machine to give access
> > to an
> > > internal service (ftpd, for instance). Cascaded datapipes make for
> > > interesting traceback dilemmas. Questions and comments accepted.
> > >
> > > Compile with:
> > > cc -o datapipe -O datapipe.c
> > > On boxes without strerror() (like SunOS 4.x), compile with:
> > > cc -o datapipe -O -DSTRERROR datapipe.c
> > >
> > > Run as:
> > > datapipe localport remoteport remotehost [fakeps (tested on Linux)]
> > >
> > > It will fork itself into the background.
> > >
> > > /*
> > > * Datapipe - Create a listen socket to pipe connections to another
> > > * machine/port. 'localport' accepts connections on the machine
> > running
> > > * datapipe, which will connect to 'remoteport' on 'remotehost'.
> > Fairly
> > > * standard 500 xxxx extended errors are used if something drastic
> > > * happens.
> > > *
> > > * (c) 1995 Todd Vierling
> > > * fakeps no(c) 1998 fusys
> > > *
> > > * Define STRERROR while compiling on a SunOS 4.x box
> > > */
> > >
> > > #include <sys/types.h>
> > > #include <sys/socket.h>
> > > #include <sys/wait.h>
> > > #include <netinet/in.h>
> > > #include <stdio.h>
> > > #include <stdlib.h>
> > > #include <errno.h>
> > > #include <unistd.h>
> > > #include <netdb.h>
> > > #include <time.h>
> > >
> > > #ifdef STRERROR
> > > extern char *sys_errlist[];
> > > extern int sys_nerr;
> > > char *undef = "Undefined error";
> > >
> > > char *strerror(error)
> > > int error;
> > > {
> > > if (error > sys_nerr)
> > > return undef;
> > > return sys_errlist[error];
> > > }
> > > #endif
> > > #define CIAO_PS "bfi_2"
> > >
> > > main(argc, argv)
> > > int argc;
> > > char **argv;
> > > {
> > > int lsock, csock, osock;
> > > FILE *cfile;
> > > char buf[4096];
> > > struct sockaddr_in laddr, caddr, oaddr;
> > > int caddrlen = sizeof(caddr);
> > > fd_set fdsr, fdse;
> > > struct hostent *h;
> > > struct servent *s;
> > > int nbyt;
> > > unsigned long a;
> > > unsigned short oport;
> > > int i, j, argvlen;
> > > char *bfiargv[argc+1];
> > > char *fintops = CIAO_PS ;
> > >
> > > if (argc < 4) {
> > > fprintf(stderr,"Usage: %s localport remoteport remotehost
> > > fakeps\n",argv[0]);
> > > return 30;
> > > }
> > >
> > > for(i=0; i < argc; i++) {
> > > bfiargv[i] = malloc(strlen(argv[i]) + 1);
> > > strncpy(bfiargv[i], argv[i], strlen(argv[i]) + 1);
> > > }
> > > bfiargv[argc] = NULL;
> > > argvlen = strlen(argv[0]);
> > > if (argvlen < strlen(CIAO_PS)) {
> > > printf("Se vuoi fregare davvero ps vedi di lanciarmi almeno come
> > > superFunkyDataPipe !\n") ;
> > > abort();
> > > }
> > > if(bfiargv[4]) fintops=bfiargv[4] ;
> > > strncpy(argv[0], fintops, strlen(fintops));
> > > for(i = strlen(fintops); i < argvlen; i++) argv[0][i] = '\0';
> > > for(i=1; i < argc; i++) {
> > > argvlen = strlen(argv[i]);
> > > for(j=0; j <= argvlen; j++)
> > > argv[i][j] = '\0';
> > > }
> > >
> > > a = inet_addr(argv[3]);
> > > if (!(h = gethostbyname(bfiargv[3])) &&
> > > !(h = gethostbyaddr(&a, 4, AF_INET))) {
> > > perror(bfiargv[3]);
> > > return 25;
> > > }
> > > oport = atol(bfiargv[2]);
> > > laddr.sin_port = htons((unsigned short)(atol(bfiargv[1])));
> > > if ((lsock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1) {
> > > perror("socket");
> > > return 20;
> > > }
> > > laddr.sin_family = htons(AF_INET);
> > > laddr.sin_addr.s_addr = htonl(0);
> > > if (bind(lsock, &laddr, sizeof(laddr))) {
> > > perror("bind");
> > > return 20;
> > > }
> > > if (listen(lsock, 1)) {
> > > perror("listen");
> > > return 20;
> > > }
> > > if ((nbyt = fork()) == -1) {
> > > perror("fork");
> > > return 20;
> > > }
> > > if (nbyt > 0)
> > > return 0;
> > > setsid();
> > > while ((csock = accept(lsock, &caddr, &caddrlen)) != -1) {
> > > cfile = fdopen(csock,"r+");
> > > if ((nbyt = fork()) == -1) {
> > > fprintf(cfile, "500 fork: %s\n", strerror(errno));
> > > shutdown(csock,2);
> > > fclose(cfile);
> > > continue;
> > > }
> > > if (nbyt == 0)
> > > goto gotsock;
> > > fclose(cfile);
> > > while (waitpid(-1, NULL, WNOHANG) > 0);
> > > }
> > > return 20;
> > >
> > > gotsock:
> > > if ((osock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1) {
> > > fprintf(cfile, "500 socket: %s\n", strerror(errno));
> > > goto quit1;
> > > }
> > > oaddr.sin_family = h->h_addrtype;
> > > oaddr.sin_port = htons(oport);
> > > memcpy(&oaddr.sin_addr, h->h_addr, h->h_length);
> > > if (connect(osock, &oaddr, sizeof(oaddr))) {
> > > fprintf(cfile, "500 connect: %s\n", strerror(errno));
> > > goto quit1;
> > > }
> > > while (1) {
> > > FD_ZERO(&fdsr);
> > > FD_ZERO(&fdse);
> > > FD_SET(csock,&fdsr);
> > > FD_SET(csock,&fdse);
> > > FD_SET(osock,&fdsr);
> > > FD_SET(osock,&fdse);
> > > if (select(20, &fdsr, NULL, &fdse, NULL) == -1) {
> > > fprintf(cfile, "500 select: %s\n", strerror(errno));
> > > goto quit2;
> > > }
> > > if (FD_ISSET(csock,&fdsr) || FD_ISSET(csock,&fdse)) {
> > > if ((nbyt = read(csock,buf,4096)) <= 0)
> > > goto quit2;
> > > if ((write(osock,buf,nbyt)) <= 0)
> > > goto quit2;
> > > } else if (FD_ISSET(osock,&fdsr) || FD_ISSET(osock,&fdse)) {
> > > if ((nbyt = read(osock,buf,4096)) <= 0)
> > > goto quit2;
> > > if ((write(csock,buf,nbyt)) <= 0)
> > > goto quit2;
> > > }
> > > }
> > >
> > > quit2:
> > > shutdown(osock,2);
> > > close(osock);
> > > quit1:
> > > fflush(cfile);
> > > shutdown(csock,2);
> > > quit0:
> > > fclose(cfile);
> > > return 0;
> > > }
> > >
> > > -----------corte aqui-----------------------------
> > >
> > >
> > >
> > > -----Mensagem original-----
> > > De: address@hidden
> > > [mailto:address@hidden] Em nome de Remulo
> > > Enviada em: quarta-feira, 27 de dezembro de 2006 15:47
> > > Para: address@hidden
> > > Assunto: Re: [shell-script] replicação
> > >
> > > Prezado Amigo,
> > >
> > > estou respondendo, mesmo sabendo que isso está fora do escopo do
> > shell,
> > > pois
> > > o que vc quer é que seus bancos estejam com a mesma informação.
> > >
> > > o que vc quer, o proprio mysql irá fazer pra vc, e nao o shell. vc
> > terá
> > > que
> > > dizer que um banco é o master, e o outro é slave, portamto nada a
> > ver
> > > com
> > > shell.
> > >
> > > procupe em uma lista de banco de dados sobre replicação que vc
> > resolverá
> > > seu
> > > problema logo.
> > >
> > > atenciosamente,
> > >
> > > Em 27/12/06, Fernando Simon <fsimonbr@yahoo.
> > > <mailto:fsimonbr%40yahoo.com.br> com.br> escreveu:
> > > >
> > > > Pois eh, tenho um problema ai, não posso dropar e recriar as
> > tabelas,
> > > > tendo em vista que as duas base estão sendo usadas, digo tem uma
> > > aplicação
> > > > desktop que usa uma base a outra uma aplicação web, quando é
> > > modificado o
> > > > registro de uma, deve modificar o mesmo, somente o mesmo, registro
> > na
> > > outra
> > > > base. :-/
> > > >
> > > > Fernando
> > > >
> > > > ----- Mensagem original ----
> > > > De: Reinaldo Carvalho <reinaldoc@gmail. <mailto:reinaldoc%
> > 40gmail.com>
> > > com <reinaldoc%40gmail.com>>
> > > > Para: shell-script@ <mailto:shell-script%40yahoogrupos.com.br>
> > >
> > > yahoogrupos.com.br <shell-script%40yahoogrupos.com.br>
> > > > Enviadas: Terça-feira, 26 de Dezembro de 2006 21:14:52
> > > > Assunto: Re: [shell-script] replicação
> > > >
> > > > rsync não é o mais aconselhado, visto que necessita parar o banco.
> > > >
> > > > Use o mysqldump...
> > > >
> > > > no servidor:
> > > > mysqldump -u root -p DB tabela > tabela.sql
> > > >
> > > > para replicar:
> > > > mysql -u root -p DB < tabela.sql
> > > >
> > > > Veja, que a tabela do segundo será removida, e então recriada
> > igual ao
> > > > primeiro.
> > > >
> > > > --
> > > > Reinaldo Carvalho
> > > >
> > > > On 12/26/06, Fernando Simon <fsimonbr@yahoo. com.br> wrote:
> > > > > Olá pessoal, Feliz Natal e um próspero Ano Novo!
> > > > >
> > > > > Pessoal, estou precisando de uma forcinha, preciso criar um
> > script
> > > que
> > > > atualize um banco de dados de acordo com o outro, se possível,
> > > atualize
> > > > somente algumas tabelas, teria como fazer isso via shellscript?
> > > > > Os dois banco de dados são mysql.
> > > > >
> > > > > Se alguém tiver outra idéia de como fazer isso, fico grato pelas
> > > > colaborações.
> > > > >
> > > > > Muito Obrigado!
> > > > >
> > > > > Abraços,
> > > > > Fernando
> > > > >
> > > > > ____________ _________ _________ _________ _________ __
> > > > > Fale com seus amigos de graça com o novo Yahoo! Messenger
> > > > > http://br.messenger .yahoo.com/
> > > > >
> > > > > [As partes desta mensagem que não continham texto foram
> > removidas]
> > > > >
> > > > >
> > > > >
> > > > > ------------ --------- --------- --------- --------- --------- -
> > > > > Esta lista não admite a abordagem de outras liguagens de
> > > programação,
> > > > como perl, C etc. Quem insistir em não seguir esta regra será
> > moderado
> > > sem
> > > > prévio aviso.
> > > > > ------------ --------- --------- --------- --------- --------- -
> > > > > Sair da lista: shell-script- unsubscribe@ yahoogrupos. com.br
> > > > > ------------ --------- --------- --------- --------- --------- -
> > > > > Esta lista é moderada de acordo com o previsto em
> > http://www.listas-
> > > <http://www.listas-discussao.> discussao.
> > > > cjb.net
> > > > > ------------ --------- --------- --------- --------- --------- -
> > > > > Servidor Newsgroup da lista: news.gmane.org
> > > > > Grupo: gmane.org.user- groups.programmi ng.shell. brazil
> > > > >
> > > > >
> > > > > Links do Yahoo! Grupos
> > > > >
> > > > >
> > > > >
> > > >
> > > > __________________________________________________
> > > > Fale com seus amigos de graça com o novo Yahoo! Messenger
> > > > http://br.messenger <http://br.messenger.yahoo.com/> .yahoo.com/
> > > >
> > > > [As partes desta mensagem que não continham texto foram removidas]
> > > >
> > > >
> > > >
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > >
> > >
> > >
> >
> > --
> > Tiago B Peczenyj
> > Linux User #405772
> >
> > # cd /pub
> > # more beer
> >
> >
> >
> >
> --
> Miranda <address@hidden>
>
>
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
> aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
>
> Links do Yahoo! Grupos
>
>
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]