script com FTP

1. script com FTP

Perfil removido
removido

(usa Nenhuma)

Enviado em 02/03/2010 - 01:13h

uso o freebsd, a melhor forma de atualizar o sistema seria compilando, mas tem o pacotes, mas as vezes não está tao atualizado como no ports

eu precisava listar todos os arquivos do diretorio FTP e jogar em um arquivo e depois fazer a comparação com os programas ja instalados, caso nao esteja atualizado, ai ele faz a atualização

o problema é que nao sei como listar os pacotes do diretorio

ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/amd64/packages-8.0-release/All/

e depois jogar tudo em um arquivo

eu sei um jeito, mas teria que se conectar

# ftp -a ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/amd64/packages-8.0-release/All/
ftp> mls * /home/douglas/arquivo
ftp> bye

mas nao teria como eu fazer isso em um script, alguem sabe como resolver isso??


  


2. Re: script com FTP

Perfil removido
removido

(usa Nenhuma)

Enviado em 02/03/2010 - 02:09h

descobri, estou usando o comando curl

agr nao tenho mais duvidas, mas vou deixar o topico aberto para tirar futuras duvidas sobre o script


3. Re: script com FTP

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 02/03/2010 - 09:00h

Tem uma forma q vc pode fazer:

########################################################################################
ftp -a ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-8.0-release/All/ << EOF
mls * /home/douglas/arquivo
bye
EOF
########################################################################################


4. Re: script com FTP

Perfil removido
removido

(usa Nenhuma)

Enviado em 02/03/2010 - 15:48h

meu grande problema agr seria comparar as versões dos programas instalados

no diretorio /var/db/pkg eu tenho varios diretorios com os nomes e versões dos programas instalados

ex:
.
.
.
gnome2-2.26.3
gnome_subr-1.0
gnomehier-2.3_12
gnupg-2.0.14
gnutls-2.8.3
gobject-introspection-0.6.7
gok-2.26.0_1,
.
.
.

e no script tem algo assim

==========================

#!/usr/local/bin/bash

for i in `curl ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/amd64/packages-8.0-release/All/ | awk '{print $9}'` ; do
PROGRAMA=`echo $i | rev | cut -f2-10 -d- | rev`
VERSAO=`echo $i | rev | cut -f1 -d- | cut -f2-10 -d. | rev`
VERSAO2=[0-9].[0-9]
EXISTE=`ls -d "$DB$PROGRAMA-$VERSAO"`
echo "$EXISTE"
done

==============================================

ou seja, a variavel $i que está no for, vai ter o valor dos pacotes que estão no servidor, como eu comparo isso??

sendo que os nomes e versões tem um padrão muito diferente um do outro

ex:

gnome2-2.26.3
gnome_subr-1.0
gnomehier-2.3_12
gnupg-2.0.14
gnutls-2.8.3
gobject-introspection-0.6.7
gok-2.26.0_1,1
gpac-libgpac-0.4.5_2,1
gperf-3.0.3
gpgme-1.2.0_2
graphviz-2.24.0_1
gsfonts-8.11_5
gsl-1.12
gstreamer-0.10.26
gstreamer-ffmpeg-0.10.8
gstreamer-plugins-0.10.25_1,3


ou seja, alguns coloca "," no final ou "_" "." e por ai vai, como eu faço isso??

eu sei que teria que fazer uma filtragem, ateh o primeiro ponto eu verifico isso, depois eu verifico aquilo e por ai vai

mas sou muito ruim em usar o sed,awk e por ai vai


5. Re: script com FTP

Perfil removido
removido

(usa Nenhuma)

Enviado em 02/03/2010 - 16:31h

como eu transformo isso:

gnome2-2.26.3
gnome_subr-1.0
gnomehier-2.3_12
gnupg-2.0.14
gnutls-2.8.3
gobject-introspection-0.6.7
gok-2.26.0_1,1
gpac-libgpac-0.4.5_2,1
gperf-3.0.3
gpgme-1.2.0_2
graphviz-2.24.0_1
gsfonts-8.11_5
gsl-1.12
gstreamer-0.10.26
gstreamer-ffmpeg-0.10.8
gstreamer-plugins-0.10.25_1,3

em nisso

gnome2-VAR1.VAR2.VAR3
gnome_subr-VAR1.VAR2
gnomehier-VAR1.VAR2_VAR3
gnupg-VAR1.VAR2.VAR3
gnutls-VAR1.VAR2.VAR3
gobject-introspection-VAR1.VAR2.VAR3
gok-VAR1.VAR2.VAR3_VAR4,VAR5
gpac-libgpac-VAR1.VAR2.VAR3_VAR4,VAR5
gperf-VAR1.VAR2.VAR3
gpgme-VAR1.VAR2.VAR3_VAR4
graphviz-VAR1.VAR2.VAR3_VAR4
gsfonts-VAR1.VAR2_VAR3
gsl-VAR1.VAR2
gstreamer-VAR1.VAR2.VAR3
gstreamer-ffmpeg-VAR1.VAR2.VAR3
gstreamer-plugins-VAR1.VAR2.VAR3_VAR4,VAR5

sendo VAR seria uma variavel, cujo o valor seja a versão mostrada anteriormente

na verdade seria $VAR1 $VAR2

estou querendo criar uma função onde irá transformar a versão com esses $VAR e depois ir comparando

caso $VAR1 do pacote instalado seja menor que o $VAR1 do que esteja no servidor FTP, ai ele irá fazer a instalação

# portupgrade -PRuDav gnome2-2.26.3.tbz


6. Re: script com FTP

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 02/03/2010 - 16:38h

Faça com o if:

if [ $VAR -le 0.3 ]; then
comandos
fi

O "-le" significa less equal ou menor igual. Essa lista vc pode obtê-la em:

http://aurelio.net/canivete


7. Re: script com FTP

Perfil removido
removido

(usa Nenhuma)

Enviado em 02/03/2010 - 17:32h

o que eu quero sabe é como colocar o $VAR1 no lugar dos numeros, e antes tenho que declarar o valor da variavel com o numero da versão






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts