Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
####### # # E-scripts sobre o cgi que eu estou fazendo pra GreenMatrix. # # Note 1: use the eev command (defined in eev.el) and the # ee alias (in my .zshrc) to execute parts of this file. # Executing this file as a whole makes no sense. # An introduction to eev can be found here: # # (find-eev-quick-intro) # http://angg.twu.net/eev-intros/find-eev-quick-intro.html # # Note 2: be VERY careful and make sure you understand what # you're doing. # # Note 3: If you use a shell other than zsh things like |& # and the for loops may not work. # # Note 4: I always run as root. # # Note 5: some parts are too old and don't work anymore. Some # never worked. # # Note 6: the definitions for the find-xxxfile commands are on my # .emacs. # # Note 7: if you see a strange command check my .zshrc -- it may # be defined there as a function or an alias. # # Note 8: the sections without dates are always older than the # sections with dates. # # This file is at <http://angg.twu.net/e/greenmatrix.e> # or at <http://angg.twu.net/e/greenmatrix.e.html>. # See also <http://angg.twu.net/emacs.html>, # <http://angg.twu.net/.emacs[.html]>, # <http://angg.twu.net/.zshrc[.html]>, # <http://angg.twu.net/escripts.html>, # and <http://angg.twu.net/>. # ####### ####### # # Coisas que moravam dentro do mail-002.cgi (lixos?) # ####### =scripts and notes chmod 755 ~/PERL/mail-002.cgi mkdir /usr/lib/cgi-bin/hoje/ # Esse arquivo aparece com dois nomes; o segundo Ú um symlink. # (find-fline "~/PERL/mail-002.cgi") # (find-fline "/usr/lib/cgi-bin/mail-002.cgi") # # Amigos: # (find-fline "/usr/lib/cgi-bin/") # (find-fline "/var/www/") # (find-fline "/var/www/cadastro.htm") # (find-fline "~/cadastro2.htm") # (find-fline "/usr/lib/cgi-bin/checkboxes") # (find-fline "/snarf/http/www.greenmatrix.com.br/cadastro_.htm") =cut ####### # # contato.htm / contato.cgi # ####### edrxnetscape http://localhost/contato.htm & lynx http://localhost/contato.htm # (find-fline "/var/www/contato.htm") # (find-fline "/usr/lib/cgi-bin/contato.cgi") # (find-fline "/usr/lib/cgi-bin/contato.mail") # (find-fline "/usr/lib/cgi-bin/contato_ok.mail") # (find-fline "/usr/lib/cgi-bin/contato_ok.html") # (find-fline "/usr/lib/cgi-bin/contato_erro.html") ####### # # Edita templates html # ####### crlf < /usr/lib/cgi-bin/contato_ok.html > $PGREENCGI/contato_ok.htm # (find-fline "/usr/lib/cgi-bin/contato_ok.html") # (find-fline "$PGREENCGI/contato_ok.htm") # (find-fline "$PGREENCGI/") # (find-fline "$AFGM") ####### # # Lista os "input"s do cadastro.htm # ####### sort ~/cadastro2.htm | grep input sort ~/cadastro2.htm | grep Checkbox \ | perl -nle 'm/<input type="(.*?)" name="(.*?)" value="(.*?)">(.*)/ and printf "%-10s %3d %s\n", $2, $3, $4' \ | sort |& tee ~/o ####### # # Fontes no cadastro.htm # ####### (defun gmlong () (interactive) (fooi "<gr>" "<font face=\"Arial\" size=\"2\" color=\"#087558\">" "</gr>" "</font>" "<bl>" "<font face=\"Arial\" size=\"2\" color=\"#000000\">" "</bl>" "</font>")) (defun gmshort () (interactive) (fooi "<font face=\"Arial\" size=\"2\" color=\"#087558\">" "<gr>" "</font>" "</gr>" "<font face=\"Arial\" size=\"2\" color=\"#000000\">" "<bl>" "</font>" "</bl>")) (find-fline "~/cadastro2.htm") ####### # # cadastro.htm # ####### edrxnetscape http://www.greenmatrix.com.br/cadastro.htm & lynx http://www.greenmatrix.com.br/cadastro.htm edrxnetscape http://localhost/cadastro.htm & lynx http://localhost/cadastro.htm ####### # # greenmatrix: instalaþÒo local # ####### cd /usr/lib/cgi-bin laf mkdir dias mkdir hoje ln -sf ~/PERL/mail-002.cgi . ln -sf ~/PERL/makediatxt . laf ######## # # greenmatrix: instalaþÒo remota # ######## ####### # # Telefones # ####### Alternex 515-0500 Mßrcio Calazans (amigo do Barci) Greenmatrix 509-0957 JosÚ Luiz (Barci), Orlando ou Gustavo Mandar um mail pro Orlando assim que eu debugar. Obs: o cronjob vai rodar como green; acho que isso vai ser o mesmo usußrio que o ftp, checar se funciona. Putz - como Ú que eu faþo pra rodar um programa lß como green? E repara: ele Ú um symlink e o cgi-bin mail -s 'CGI de cadastro' orlando@greenmatrix.com.br <<'---' Oi Orlando, aqui e' o Eduardo, da Bowne Internet... tou mandando esse mail so' pra avisar que ja' terminei o cgi com todas as especificacoes novas implementadas, ja' testei ele localmente e ja' subi a versao nova; ela DEVE estar rodando perfeitamente, mas eu so' vou fazer os testes `as 14:30. As modificacoes no html tambem vao ser feitas hoje de tarde. Um abraco, Edrx. --- ####### # # arquivos # ####### A=( contato.cgi contato.mail contato_ok.mail contato_ok.html contato_erro.html mail-002.cgi checkboxes obrigado.mail obrigado.html erro.html makediatxt MIME/Lite.pm do.cgi cgi10.pm ) B=( cadastro.htm contato.htm ) ####### # # unpack nau.tgz (needs A & B) # ####### cd ~/PERL/ tar -xvzf ~/cgibin.tgz cd /usr/lib/cgi-bin/ mkdir MIME for i in $A; do rm -v $i; ln -s /home/root/PERL/$i $i; done rm cronjob ln -s mail-002.cgi cronjob mkdir hoje mkdir dias if [ `hostname` = nautilus ]; then tar -xvzf ~/varwww.tgz -C /Projects/clientes/green_matrix/produto/ ln -s /Projects/clientes/green_matrix/produto/cadastro.htm /var/www/ ln -s /Projects/clientes/green_matrix/produto/contato.htm /var/www/ else cd /var/www/ tar -xvzf ~/varwww.tgz fi ####### # # pack nau.tgz (needs A & B) # ####### cd /usr/lib/cgi-bin/ tar -cvzhf ~/cgibin.tgz $A cd /var/www/ tar -cvzhf ~/varwww.tgz $B cd ~ tar -cvzf nau.tgz ZHTML/escripts/greenmatrix.e \ cgibin.tgz varwww.tgz q1 q2 q3 .zshrc arquivao.txt tar -tvzf nau.tgz # CRIM/009ideas # (find-fline "~/.netrc") cd ~ ftp $SACI <<'---' hash on binary put nau.tgz quit --- mv ~/.netrc~ ~/.netrc Especiais: cronjob Ú um link pro mail-002.cgi; MIME/Lite.pm Ú uma c¾pia do standard. # (find-fline "/usr/lib/cgi-bin/obrigado.html") # (find-fline "/usr/lib/cgi-bin/obrigado.mail") # (find-fline "/usr/lib/cgi-bin/erro.html") ####### # # Coisas pra fazer, 99jan12 # ####### # (find-fline "/snarf/http/www.geocities.com/SiliconValley/Bay/3994/val_cpf.htm") (muitas outras). ####### # # do.cgi # ####### edrxnetscape http://www.greenmatrix.com.br/cgi-bin/do.cgi & lynx http://www.greenmatrix.com.br/cgi-bin/do.cgi # (find-fline "/www.greenmatrix.com.br:/cgi-bin/do.cgi") # (find-fline "/www.greenmatrix.com.br:/cgi-bin/mail-002.cgi") edrxnetscape http://localhost/cgi-bin/do.cgi & lynx http://localhost/cgi-bin/do.cgi # (find-fline "/usr/lib/cgi-bin/do.cgi") ####### # # mail-002.cgi # ####### # (find-fline "/usr/lib/cgi-bin/") # (find-fline "/usr/lib/cgi-bin/mail-002.cgi") # (find-fline "/usr/lib/cgi-bin/cronjob") # (find-fline "/usr/lib/cgi-bin/contato.cgi") # (find-fline "/usr/lib/cgi-bin/makediatxt") # (find-fline "~/PERL/erro.html") # (find-fline "~/PERL/obrigado.mail") # (find-fline "~/PERL/obrigado.html") # (find-fline "/usr/lib/cgi-bin/mail-002.cgi") # (find-fline "/usr/lib/cgi-bin/mail-002.cgi" "$DEBUG = 'save';") # (find-node "(elisp)System Environment" "setenv") (defun gmdebug (queryfile) (interactive) (if (bufferp "*gud-mail-002.cgi*") (kill-buffer "*gud-mail-002.cgi*")) (setenv "QUERYFILE" queryfile) (perldb "perl /usr/lib/cgi-bin/mail-002.cgi")) (gmdebug "/home/root/q1") function gmtest () { export QUERYFILE=$1 cd /usr/lib/cgi-bin/ mail-002.cgi } # (find-fline "~/q1") # (find-fline "~/q2") gmtest /home/root/q1 gmtest /home/root/q2 cp /tmp/q /home/root/q1 laf /usr/lib/cgi-bin/{hoje,dias} # (find-fline "/usr/lib/cgi-bin/hoje/") # (find-fline "/usr/lib/cgi-bin/dias/") ####### # # Ok, tchau. # ####### (setq sentence-end-double-space nil) (setq sentence-end-double-space t) mail -s 'a pßgina e o cgi estÒo OK' root <<'---' mail -s 'a pßgina e o cgi estÒo OK' gustavo@greenmatrix.com.br <<'---' Oi, Gustavo. Seguinte: atÚ onde eu sei jß estß tudo funcionando. Algumas observaþ§es: * O Orlando comentou que o botÒo "browse" que permitiria ao usußrio escolher o arquivo que ele vai subir nÒo estß funcionando no Explorer 3.0. Como ele funciona no Explorer 4 e no Netscape 4, a conclusÒo Ú que o problema Ú um bug do Explorer 3, e que o usußrio com Explorer 3 vai ter que digitar o nome do arquivo na caixinha; se ele fizer isso, imagino que vß funcionar. * Pra se vocÛ quiser fazer testes mais complicados: os cadastros do dia sÒo gravados no diret¾rio cgi-bin/hoje, e os cadastros de outros dias ficam no diret¾rio cgi-bin/dias; esses diret¾rios sÒo acessÝveis por ftp. O programinha que normalmente roda todo dia Ós 23:30 (vou me referir a ele como "cronjob") pode ser rodado manualmente atravÚs de um cgi, mas por seguranþa ele s¾ roda a partir de mßquinas autorizadas; se vocÛ quiser que eu autorize algumas mßquinas suas me dÛ os endereþos de IP delas, e depois eu mando o resto das instruþ§es. * O Mßrcio Calazans, do Alternex, jß deve ter posto o cronjob pra rodar automaticamente todo dia. * O Linux ainda estß fora da tabela de conhecimentos tÚcnicos... Um abraþo, Eduardo. --- Alternex 515-0500 Mßrcio Calazans (amigo do Barci) Greenmatrix 509-0957 JosÚ Luiz (Barci), Orlando ou Gustavo ####### # # Idéias pra limpar o programa, 99jan28 # ####### # (find-fline "~/PERL/") # (find-fline "~/PERL/mail-002.cgi") # (find-fline "~/PERL/mail-003.cgi") # (find-fline "~/PERL/gmlib.pl") ####### # # Novo truque de debugamento # ####### cd /usr/lib/cgi-bin/ mail-003.cgi $(grep -v '^=$' ~/q3) grep -v '^=$' ~/q3 | tr '\n' ' ' | tee ~/o # Cuidado, Ós vezes o CGI.pm nÒo traduz ' 's por '%20's. sets=gm.conf nome=Edrx%20Ochs sexo=f ano_nascimento=1902 email=bb@plic telefone1=(021)%20286-9903 telefone2=(021)%20286-3160 cpf=000.111.222-85 atuacao=7 escritorio=1 idiomas=4 idiomas=2 idiomas=3 idiomas=1 cargos=23 cargos=22 cargos=32 cargos=34 cargos=27 sistemas=28 sistemas=56 tipo_de_conhecimento=ambiente ctecnicos=184 empresa1= cod_cargo1=%20 admissao1=00%2F2000 demissao1=13%2F0500 empresa2=Foo%20Bar cod_cargo2=33 admissao2=01%2F1998 demissao2=02%2F1998 empresa3=Obb cod_cargo3=4 admissao3=04%2F1998 demissao3= filename=71.html indicacao=2 ~/o # | tee ~/o.html # (find-enode "Shell") # (find-etag "shell-command-on-region") cd /usr/lib/cgi-bin/ for i in mail-003.cgi settings.pl gmlib.pl makediatxt; do ln -sf ~/bis/PERL/$i .; done filename=71.html # (perldb "perl /usr/lib/cgi-bin/mail-003.cgi sets=gm.conf nome=Edrx%20Ochs sexo=f ano_nascimento=1902 email=bb@plic telefone1=(021)%20286-9903 telefone2=(021)%20286-3160 cpf=000.111.222-85 atuacao=7 escritorio=1 idiomas=4 idiomas=2 idiomas=3 idiomas=1 cargos=23 cargos=22 cargos=32 cargos=34 cargos=27 sistemas=28 sistemas=56 tipo_de_conhecimento=ambiente ctecnicos=184 empresa1= cod_cargo1=%20 admissao1=00%2F2000 demissao1=13%2F0500 empresa2=Foo%20Bar cod_cargo2=33 admissao2=01%2F1998 demissao2=02%2F1998 empresa3=Obb cod_cargo3=4 admissao3=04%2F1998 demissao3= indicacao=2 filename=71.Html") # (perldb "perl /usr/lib/cgi-bin/cronjob") # (find-fline "~/bis/PERL/settings.pl") # (find-fline "~/bis/PERL/cadastro.html") # (find-fline "~/bis/PERL/mail-003.cgi") # (find-fline "/www.greenmatrix.com.br:/cgi-bin/do.cgi") # (find-fline "/www.greenmatrix.com.br:/cgi-bin/settings.pl") # (find-fline "/www.greenmatrix.com.br:/cgi-bin/mail-003.cgi") # (find-fline "/www.greenmatrix.com.br:/cgi-bin/mail-002.cgi") # (find-fline "/www.greenmatrix.com.br:/www/cadastro.htm") lynx http://www.greenmatrix.com.br/cgi-bin/do.cgi psner ftp://www.greenmatrix.com.br/cgi-bin/hoje/ psne ftp://www.greenmatrix.com.br/cadastro.htm ####### # # Recriando o ambiente do weber # ####### rm -Rv /usr/arch.WebDocs/users/green/cgi-bin mkdir -p /usr/arch.WebDocs/users/green/ ln -sf /usr/lib/cgi-bin \ /usr/arch.WebDocs/users/green/cgi-bin laf /usr/arch.WebDocs/users/green/cgi-bin function chownp () { chown -v $1 $*[3,-1] chmod -v $2 $*[3,-1] } cd /usr/arch.WebDocs/users/green/cgi-bin mkdir dias hoje tmp chownp green:green 777 dias hoje tmp chownp green:green 755 mail-004.cgi chownp green:green 655 gmlib.pm settings.pm laf # (find-fline "/usr/arch.WebDocs/users/green/cgi-bin/mail-004.cgi") su - green -c id su - nobody -c id ####### # # # ####### # (find-fline "/www.greenmatrix.com.br:/cgi-bin/cronjob") # (find-fline "/usr/lib/cgi-bin/cronjob") ####### # # # ####### cd ~ rm -Rv gmcgi-bin mkdir ~/gmcgi-bin cd ~/gmcgi-bin/ tar -xvzf /snarf/ftp/www.greenmatrix.com.br/cgi-bin/gm99feb17.tgz tar -tvzf /snarf/ftp/www.greenmatrix.com.br/cgi-bin/gm99feb17.tgz ###### # # showquery.cgi # ###### # (find-pl5pod "func" "=item map") # (find-fline "/var/www/showquery.html") # (find-fline "") cd ~/gmcgi-bin/; cat > showquery.cgi <<'---' #!/usr/local/bin/perl -I/usr/arch.WebDocs/users/green/cgi-bin print "Content-type: text/plain\n\n"; print "date: ", `date`; print "pwd: ", `pwd`; print "id: ", `id`; use Data::Dumper; sub wdump { print "$_[0]: ", Dumper($_[1]); } @ENV_sorted = map { "$_ = $ENV{$_}" } (sort (keys %ENV)); wdump '%ENV sorted', \@ENV_sorted; wdump '[$0, @ARGV]', [$0, @ARGV]; use CGI; $q = new CGI; wdump '$q', $q; print "\$query->save:\n"; $q->save(stdout); --- gmchmod showquery.cgi 755 ###### # # qs2form # ###### # (find-fline "/usr/lib/cgi-bin0/defvalue.cgi") # (find-fline "~/PERL/qs2form") # (find-fline "~/gmcgi-bin/do.cgi") ~/PERL/qs2form - iii <<'---' comando=ls -lAF; tar -cvzf ../gm.tgz; ls -lAF ../gm.tgz --- ~/PERL/qs2form <<'---' comando=ls -lAF; tar -cvzf ../gm.tgz; ls -lAF ../gm.tgz --- export URL=/cgi-bin/mail-002.cgi # export URL=/cgi-bin/showquery.cgi # ~/PERL/qs2form /cgi-bin/do.cgi 'ls -lAF' <<'---' # comando=ls -lAF dias hoje tmp # dir=/usr/arch.WebDocs/users/green/cgi-bin # --- export URL=/cgi-bin/mail-002.cgi ( echo '<head></head><body>' print -l $GMPARAMS1 | ~/PERL/qs2form -p $URL 'Teste 1' print -l $GMPARAMS2 | ~/PERL/qs2form -p $URL 'Teste 2' print -l $GMPARAMS1 | ~/PERL/qs2form -p -m $URL 'Teste 1' \ '<INPUT TYPE="file" NAME="filename" SIZE=41>' print -l $GMPARAMS2 | ~/PERL/qs2form -p -m $URL 'Teste 2' \ '<INPUT TYPE="file" NAME="filename" SIZE=41>' print -l $GMPARAMS1 | ~/PERL/qs2form -p -m /cgi-bin/showquery.cgi \ 'Teste 1 - showquery' \ '<INPUT TYPE="file" NAME="filename" SIZE=41>' mkdoform 'ls -lAF' 'ls -lAF dias hoje tmp' mkdoform 'rm yyyymmdd.txt' 'rm dias/$(date +%Y%m%d).txt; ls -lAF dias hoje tmp' mkdoform './cronjob' './cronjob' mkdoform './cronjob.cgi' './cronjob.cgi' mkdoform 'df (pra ver porque o cronjob nao consegue mandar mail)' 'df' mkdoform 'tail tmp/queries; wc tmp/queries' \ 'echo ...; tail -100 tmp/queries; wc tmp/queries' mkdoform 'cat tmp/log' 'cat tmp/log' mkdoform 'cat tmp/queries' 'cat tmp/queries' mkdoform 'grep HTTP_USER_AGENT tmp/queries' 'grep HTTP_USER_AGENT tmp/queries' echo '</body>' ) | tee /var/www/testes.html lynx http://localhost/testes.html cd /var/www/ ftpgm <<'---' cd www put testes.html quit --- lynx $HGM/testes.html cd /usr/lib/cgi-bin/ ftpgm <<'---' cd cgi-bin put mail-002.cgi quit --- lynx $HGM/cgi-bin/do.cgi cd /usr/lib/cgi-bin/ mail-002.cgi $GMPARAMS1 # (find-node "(zsh)Shell Builtin Commands" "`print ") # (perldb "perl ~/PERL/qs2form - iii") ####### # # Apache no angg rodando como green:green # ####### cd /etc/apache agrep www-data * # (find-fline "/etc/apache/httpd.conf" "www-data") /etc/init.d/apache restart ####### # # # ####### # (find-fline "/usr/lib/cgi-bin/mail-002.cgi") # (find-fline "/www.greenmatrix.com.br:/cgi-bin/cronjob") # (perldb "perl /usr/lib/cgi-bin/cronjob.cgi") ####### # # Porque é que as tmpfiles não estão sendo criadas? # ####### # Eu enfio isso no meio do código de um cgi que receba uploads, por exemplo # (find-fline "/var/www/perlex/file_upload.cgi" "param('filename')") # e descubro que no meu query não está aparecendo o ".tmpfiles". use Data::Dumper; print "<pre>\n", Dumper(CGI::self_or_default), "<pre>\n"; # (find-fline "/www.greenmatrix.com.br:/cgi-bin/settings.pm") Experiences in using MIME::Lite to send messages with attachments in CGI scripts 1) It seems that M$ # (find-fline "$MAIL" "application/msword") # (find-fline "$MAIL" 15390) # (find-fline "/var/www/cadastro.htm" "DOC") # (find-fline "/www.greenmatrix.com.br:/www/cadastro.htm") <br>Forneþa o caminho completo. Ex: C:\Meus Documentos\CV.doc lynx $HGM/testes.html mail -s 'Re: Pagina na internet?' orlando@greenmatrix.com.br <<'---' Oi Orlando, > Eduardo, > > Estamos quase no final deste pedaco da pagina. Ja carregamos alguns > arquivos, mas alguns problemas estao persistindo. Precisamos de uma > resposta objetiva para os seguintes pontos: > > - Independentemente da versao do browser, o e-mail que traz em anexo o > curriculo do candidato esta mudando a sua extensao para txt. Ja' descobri a causa deste problema, e' um bug do VB ou do Windows em geral. Ja' implementei uma solucao rapida, mas o Gustavo (e' ele que esta' mexendo na parte em VB, nao e'?) vai ter que mudar umas linhas no codigo dele. E' o seguinte: quando o cgi envia uma mensagem com um curriculo ela e' mandada encodificada e uma parte da encondificacao e' um header como esse aqui: --_----------=_9179279726130 Content-Disposition: inline; filename="cvdoc.html" Content-Transfer-Encoding: base64 Content-Type: text/plain; name="cvdoc.html" Acontece que o VB ou o Windows ve^ que o bloco encodificado tem tipo "text/plain" e decide que entao a extensao dele tem que ser ".txt", e descarta a extensao dada explicitamente. A solucao que eu consegui e' a seguinte: o arquivo vai continuar vindo como o nome cvdoc.txt, mas o subject vai passar a ser algo como 02144192740.doc (antes era so' a forma curta do CPF), que era o que nos queriamos originalmente que fosse o nome do arquivo anexado. Essa extensao dada no subject vai ser sempre composta de tres letras minusculas, isto e', vai ser sempre doc, txt, htm ou rtf (html e' convertido em htm), o que simplifica o trabalho do Gustavo de separar a extensao do cpf. > - O Cronjob nao esta disparando o envio do arquivo `as 23h30. Este > problema e' seu ou da Alternex? O problema foi, digamos, 2/3 meu, 1/3 da Alternex; eu tive um trabalhao pra contornar uma serie de idiossincrasias do sistema deles. Mas agora esta' resolvido, o sistema envia uma copia do arquivo pra voces e outra pra mim todo dia, e a minha (pelo menos!) esta' chegando perfeita. > - No IE3.0 mesmo que nos coloquemos o caminho inteiro do arquivo > esta' vindo uma mensagem que o arquivo pode nao existir ou estar vazio. > Temos como resolver isto? Eu lembro que o Max comentou, na reuniao que a gente teve na Bowne, que o IE3.0 tinha um bug e nao conseguia enviar o arquivo, e que so' o IE3.01 (ou 3.02) conseguia. Se o usuario estiver usando o IE3 a mensagem de erro passa a ter o seguinte trecho a mais: "Obs: se voce estiver usando o Internet Explorer 3.0 o problema pode ser do seu browser. Tente passar para a versao 3.01 ou outra superior ou para outro browser." Me avise se quiser que mude. > Preciso que voce solucione estes problemas. Na segunda-feira terei uma > reuniao de posicionamento com a diretoria da Green Matrix onde > certamente vao me cobrar o final deste projeto. > > Orlando Ok. Solucionados, na medida do possivel? Qualquer coisa por favor entre em contato por mail (edrx@inx.com.br) ou por telefone (286-3160); por telefone costuma ser mais rapido. [], Eduardo --- # Local Variables: # coding: utf-8-unix # End: