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 14:50:22 -0200

2007/1/2, Miranda <address@hidden>:
>
> Júlio , de modo algum quiz lhe criticar mesmo porque
> admiro muito o que você faz.
> Apenas não concordo quando vocês partem do pressuposto
> de que todos entendem as regras e as burlam de maneira proposital.
> Como Professsor que fui durante 7 anos , aprendi que não é assim.
> Nem todos "não aprendem" por que não querem.


Então Miranda, de professor para professor (há 9 anos venho dando aulas em
faculdades, pelo mero prazer de ensinar): qdo seu aluno não aprende, vc lhe
dá conselhos ou reprova? Tento ao máximo não reprovar - e na lista tem
diversos alunos meus que podem atestar que não estou mentindo - mas algumas
vezes não dá...

Miranda, é preciso que todos saibam que um dos segredos do sucesso desta
lista (todo mês recebo umas 5 referencias elogiosas à lista) é que aqui só
se fala sobre shell. Desde o seu início (e lá se vão alguns bons anos), o
dono e os moderadores querem deixar bastante claro que outros assuntos não
são benvindos.

Por isso tb está na hora de parar com este nosso OT. ;)

Que 2007 seja o ano livre,
Julio
:wq


> On Tue, 2007-01-02 at 11:00 -0200, Julio C. Neves wrote:
> > 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]
> >
> >
> >
> >
> >
> --
> 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]