Gentoo Forums
Gentoo Forums
Quick Search: in
Me ayudan a hacer un script??
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Spanish
View previous topic :: View next topic  
Author Message
k4in
Tux's lil' helper
Tux's lil' helper


Joined: 26 Jan 2008
Posts: 89

PostPosted: Tue May 13, 2008 6:00 am    Post subject: Me ayudan a hacer un script?? Reply with quote

Bueno aqui les tengo un problema practico y es que tengo mi servidor con una maquina viejita, ya tengo mldonkey para e2k gnutella y otras chucherias y torrentflux para mis torrents, pero me faltan las descargas directas, asi que me gustaria hacer un script sencillo para que use wget y una vez que termine una descarga siga con el siguiente link y asi hasta que acabe, pero no tengo mucha idea sobre programacion shell-script, que dicen?

cualquier ayuda es apreciada :)
Back to top
View user's profile Send private message
diegoto
Guru
Guru


Joined: 10 Jun 2006
Posts: 303

PostPosted: Tue May 13, 2008 9:23 pm    Post subject: Reply with quote

y si haces esto:

# wget http://www.lugar.com.ar/archivo1.bin; wget http://www.lugar.com.ar/archivo2.bin; wget http://www.lugar.com.ar/archivo3.bin

el punto y coma separa las instrucciones y cuando una termina arranca la otra.

Saludos
_________________
Diego Najar

http://www.muser.com.ar <-- Blog Personal
Back to top
View user's profile Send private message
xSober
n00b
n00b


Joined: 17 Jan 2008
Posts: 34

PostPosted: Tue May 13, 2008 11:15 pm    Post subject: Reply with quote

Holas,

si los nombres de archivos varian en el numero puedes hacer algo asi:

Code:
#!/bin/bash

for N in $(seq -w 1 1 100 ); do
 
    wget http://www.lugar.com.ar/archivo${N}.bin
           
done


eso descargaria archivos del archivo001.bin al archivo100.bin


si lo que quieres es descargar archivos que tengas sus URLs en algun archivo de texto puedes hacer algo asi:

archivo:
http://www.lugar.com.ar/archivo.bin
http://www.lugar.com.ar/otro.bin
http://www.lugar.com.ar/yotromas.txt
http://www.lugar.com.ar/etc.etc



Code:
#!/bin/bash

for URL in $(cat /ruta/al/archivo ); do
 
     wget $URL
           
done





espero te sirva...


salu2
Back to top
View user's profile Send private message
Stolz
Moderator
Moderator


Joined: 19 Oct 2003
Posts: 2900
Location: Valencia, Spain

PostPosted: Wed May 14, 2008 12:45 am    Post subject: Reply with quote

xSober wrote:
si lo que quieres es descargar archivos que tengas sus URLs en algun archivo de texto puedes hacer algo asi:

archivo:
http://www.lugar.com.ar/archivo.bin
http://www.lugar.com.ar/otro.bin
http://www.lugar.com.ar/yotromas.txt
http://www.lugar.com.ar/etc.etc



Code:
#!/bin/bash

for URL in $(cat /ruta/al/archivo ); do
 
     wget $URL
           
done


o más sencillo: wget -i archivo


k4in, sería interesante que menciones de donde salen los enlaces, donde se guardan (si es que se guardan), etc... Si saber eso es difícil ayudar
Back to top
View user's profile Send private message
k4in
Tux's lil' helper
Tux's lil' helper


Joined: 26 Jan 2008
Posts: 89

PostPosted: Wed May 14, 2008 1:49 am    Post subject: Reply with quote

diegoto wrote:
y si haces esto:

# wget http://www.lugar.com.ar/archivo1.bin; wget http://www.lugar.com.ar/archivo2.bin; wget http://www.lugar.com.ar/archivo3.bin

el punto y coma separa las instrucciones y cuando una termina arranca la otra.

mm no sabia lo del punto y coma, no me serviria porque son muchos enlaces los que pongo, pero gracias de todas formas me servira para otras cosas :D

xSober wrote:
si lo que quieres es descargar archivos que tengas sus URLs en algun archivo de texto puedes hacer algo asi:

archivo:
http://www.lugar.com.ar/archivo.bin
http://www.lugar.com.ar/otro.bin
http://www.lugar.com.ar/yotromas.txt
http://www.lugar.com.ar/etc.etc

Code:
#!/bin/bash

for URL in $(cat /ruta/al/archivo ); do
 
     wget $URL
           
done


espero te sirva...


exactamente en algo asi pensaba pero
Stolz wrote:
o más sencillo: wget -i archivo

no sabia de esa opcion y segun yo revise el manual, hasta ahora que dices me doy cuenta :oops:

concretamente lo voy a usar para megaupload y aprovecharme de su happyhour :twisted: no es para nada de otro mundo
Back to top
View user's profile Send private message
inconexo
Tux's lil' helper
Tux's lil' helper


Joined: 25 Aug 2005
Posts: 144

PostPosted: Wed May 14, 2008 8:54 am    Post subject: Truco numero 1 Reply with quote

Hola!

hablando de scripts, aprovecho para comentar algo que tal vez os sea util, hasta a los mas sabios del bash :)

Tradicionalmente, los espacios en blanco son un problema para generar scripts, tanto en entrada de consola, nombres de ficheros

Code:
admin@zorrilla ~/out $ ls -ltr
total 0
-rw-r--r-- 1 admin users 0 May 14 10:42 xxx 2 xxx
-rw-r--r-- 1 admin users 0 May 14 10:42 xxx 1 xxx
-rw-r--r-- 1 admin users 0 May 14 10:42 xxx 4 xxx
-rw-r--r-- 1 admin users 0 May 14 10:42 xxx 3 xxx
-rw-r--r-- 1 admin users 0 May 14 10:42 xxx 7 xxx
-rw-r--r-- 1 admin users 0 May 14 10:42 xxx 6 xxx
-rw-r--r-- 1 admin users 0 May 14 10:42 xxx 5 xxx
-rw-r--r-- 1 admin users 0 May 14 10:42 xxx 9 xxx
-rw-r--r-- 1 admin users 0 May 14 10:42 xxx 8 xxx
-rw-r--r-- 1 admin users 0 May 14 10:42 xxx 10 xxx


si recorremos este script de forma tradicional...

Code:
admin@zorrilla ~/out $ for i in $(ls); do file "${i}"; done
xxx: cannot open `xxx' (No such file or directory)
1: cannot open `1' (No such file or directory)
xxx: cannot open `xxx' (No such file or directory)
xxx: cannot open `xxx' (No such file or directory)
[...]


la forma correcta de hacerlo es...

Code:
admin@zorrilla ~/out $ ls|while read i; do file "${i}"; done
.: directory
./xxx 1 xxx: empty
./xxx 2 xxx: empty
./xxx 3 xxx: empty
./xxx 4 xxx: empty
./xxx 5 xxx: empty
./xxx 6 xxx: empty
./xxx 7 xxx: empty
./xxx 8 xxx: empty
./xxx 9 xxx: empty
./xxx 10 xxx: empty


Ademas de un ls, se puede aplicar por supuesto a la salida de un cat, un sed, un find... con espacios

Un saludo!
Back to top
View user's profile Send private message
inconexo
Tux's lil' helper
Tux's lil' helper


Joined: 25 Aug 2005
Posts: 144

PostPosted: Wed May 14, 2008 9:18 am    Post subject: Truco numero 2 Reply with quote

Ah!

otra cosa que se me ocurre... sabeis que los nombres de fichero que empieza por un guion alto son de dificil acceso...

Code:
admin@zorrilla ~/out $ ls -ltr
total 0
-rw-r--r-- 1 admin users 0 May 14 10:54 - hola mundo
admin@zorrilla ~/out $ ls
- hola mundo


pues bien... comandos que fallan habitualmente...

Code:
admin@zorrilla ~/out $ cat "- hola mundo"
cat: invalid option --
Try `cat --help' for more information.
admin@zorrilla ~/out $ touch "- hola mundo"
touch: invalid option --
Try `touch --help' for more information.
admin@zorrilla ~/out $ rm "- hola mundo"
rm: invalid option --
Try `rm ./'- hola mundo'' to remove the file `- hola mundo'.
Try `rm --help' for more information.


bien, la forma de "escapar" este guion es para casi todos los comandos, usando un doble guion alto despues del comando...

Code:
cat -- "- hola mundo"
touch -- "- hola mundo"
rm -- "- hola mundo"
file -- "- hola mundo"
mv -- "- hola mundo" xxx


Por cierto, esto lo encontre en un libro que satirizaba la "facilidad" de Unix... escrito, entre otros, por Kernighan & Ritchie (siento no recordar el titulo, lo siento)

Un saludo!
Back to top
View user's profile Send private message
ackward
Apprentice
Apprentice


Joined: 06 Sep 2002
Posts: 192

PostPosted: Wed May 14, 2008 11:20 am    Post subject: Reply with quote

yo siempre tiro de barra de escape, el siguiente caracter se toma literalmente

ej en bash:

Code:
ls \-[tab para autocompletar]
Back to top
View user's profile Send private message
inconexo
Tux's lil' helper
Tux's lil' helper


Joined: 25 Aug 2005
Posts: 144

PostPosted: Wed May 14, 2008 11:43 am    Post subject: Reply with quote

ackward wrote:
yo siempre tiro de barra de escape, el siguiente caracter se toma literalmente

ej en bash:

Code:
ls \-[tab para autocompletar]


Me temo que para el caso de los ficheros cuyo nombre empieza con "-", da igual escaparlo con slashes que con comillas dobles :)

Has intentado crear un directorio que empieze por guion alto?
Has visto lo que dice "ls - [tabulacion]"?

No es habitual... pero te puedes encontrar con este caso si usas samba y tienes 200 usuarios haciendo de las suyas :)

Saludos!
Back to top
View user's profile Send private message
i92guboj
Moderator
Moderator


Joined: 30 Nov 2004
Posts: 9106
Location: Córdoba (Spain)

PostPosted: Wed May 14, 2008 12:49 pm    Post subject: Reply with quote

inconexo wrote:
ackward wrote:
yo siempre tiro de barra de escape, el siguiente caracter se toma literalmente

ej en bash:

Code:
ls \-[tab para autocompletar]


Me temo que para el caso de los ficheros cuyo nombre empieza con "-", da igual escaparlo con slashes que con comillas dobles :)

Has intentado crear un directorio que empieze por guion alto?
Has visto lo que dice "ls - [tabulacion]"?

No es habitual... pero te puedes encontrar con este caso si usas samba y tienes 200 usuarios haciendo de las suyas :)

Saludos!


Para estos casos muchos comandos ofrecen el terminador --

Por ejemplo

Code:

$ ls -- -
ls: no se puede acceder a -: No existe el fichero o el directorio


-- significa que ya no se van a añadir más opciones, así que todo lo demás que aparezca van a ser nombre de archivo. Muchos comandos aceptan dicho terminador.
_________________
Gentoo Handbook
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Spanish All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum