Автор Тема: shell скрипт  (Прочитано 839 раз)

Оффлайн stanukih

  • Завсегдатай
  • *
  • Сообщений: 560
shell скрипт
« : 05.01.2015 20:47:29 »
Имеется текстовый файл с адресами для скачивания. Скачиваеться список архивов. Хотелось бы написать скрип на shelle (еще лучше на пайтоне) который будет считывать этот адрес, скачивать архив, распаковывать архив в одноименную папку.
Спойлер
Просто вручную это шибко долго делать, с шелом у меня вообще напряг, а пайтон начал учить но до сетей еще не дошёл.
Может кому еще пригодиться.

DdShurick

  • Гость
Re: shell скрипт
« Ответ #1 : 05.01.2015 21:03:39 »
Из man wget
Цитировать
wget -i file
wget --input-file=file
    Считать URL из file. В этом случае указывать URL в командной строке не требуется. Если URL указаны и в командной строке и в file, то сначала будут загружены URL из командной строки

Оффлайн stanukih

  • Завсегдатай
  • *
  • Сообщений: 560
Re: shell скрипт
« Ответ #2 : 05.01.2015 21:13:49 »
Это я знаю но он считывает файлы все и разархивировать все автоматически не получиться.

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: shell скрипт
« Ответ #3 : 05.01.2015 21:39:08 »
 Какой-нибудь скрипт напиши, который будет раз в несколько секунд будет  смотреть на появление нового файла в папке и разархивировать файл.

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: shell скрипт
« Ответ #4 : 05.01.2015 21:39:43 »
Или просто все файлы разархивировать после скачки файлов

Оффлайн stanukih

  • Завсегдатай
  • *
  • Сообщений: 560
Re: shell скрипт
« Ответ #5 : 05.01.2015 21:42:57 »
пока сделал вот что (python)
# -*- coding: utf-8 -*- #кодировка
import os
f = open("spisok","r")
s = f.readline()
while s:
    s = f.readline()
    #os.system('wget -i '+s)   
    sh=s.rindex("/")+1
    sh1=len(s)+1
    s1=s[sh:sh1]

конечно костыле подобно но осталось только разархивирование сделать

Оффлайн stanukih

  • Завсегдатай
  • *
  • Сообщений: 560
Re: shell скрипт
« Ответ #6 : 05.01.2015 21:50:01 »
И последняя строка
os.system('unzip '+s1)
понятно что лучше сделать по человечески но вроде и так должно работать

Оффлайн rotkart

  • Завсегдатай
  • *
  • Сообщений: 661
    • Email
Re: shell скрипт
« Ответ #7 : 12.01.2015 09:22:45 »
Ох, питон (:
Я бы себе так накостылировал:

#!/bin/bash
#Скрипт ожидает один параметр - имя текстового файла

if [ $# -ne 1 ]
then
    echo "$0 ожидает имя одного текстового файла!"
    exit 1
fi

wget -q -w 1 --random-wait -nc -i $1

if [ $? -ne 0 ]
then
    echo "Ошибка скачивания списка, попробуйте ещё раз"
    exit 1
fi

for file in *.zip
do
    unzip ${file} -d ${file%.*}
    rm -f ${file}
done

exit 0
Научить нельзя, научиться можно.