Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: использование crontab  (Прочитано 2526 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн le6681

  • Автор темы
  • Участник
  • *
  • Сообщений: 205
  • Linux Mint 12
    • Просмотр профиля
использование crontab
« : 12 Март 2009, 21:55:57 »
подскажите пожалуста как при помощи crontab можно организовать скачивание файла из сети в определенное время суток? тоесть начало например в 00.15 а закончить в 07.45.... и с ежедневным запуском этой команды для докачивания этого файла. (через wget) и как вытащить wget из фона чтобы посмотреть на статистику закачки?
Вы можете спросить ;)
Athlon 64X2 5400+, 3Gb DDR2, NV450GTS, HDD 750Gb, 4G modem
Blender 3D

Оффлайн le6681

  • Автор темы
  • Участник
  • *
  • Сообщений: 205
  • Linux Mint 12
    • Просмотр профиля
Re: использование crontab
« Ответ #1 : 13 Март 2009, 13:50:54 »
Как замутить в нужное время уже разобрался.... а вот как сделать чтобы она в нужное время останавливала закачку? На винде просто в планировщике менеджера закачек выставлял... а тут не могу победить.
Вы можете спросить ;)
Athlon 64X2 5400+, 3Gb DDR2, NV450GTS, HDD 750Gb, 4G modem
Blender 3D

Chapeau

  • Гость
Re: использование crontab
« Ответ #2 : 13 Март 2009, 14:24:59 »
killall wget

Оффлайн afon

  • Старожил
  • *
  • Сообщений: 1110
  • Drink Different!
    • Просмотр профиля
Re: использование crontab
« Ответ #3 : 13 Март 2009, 14:45:17 »
Если в 7.45 комп выключается, то можно просто использовать wget -c <path/file> для докачки. Процесс стартует и закачка продолжается с прерванного места.
Если не выключается, а надо именно остановить, то
- можно килить тупо все wget-ы, если закачка в одном процессе :) killall -9 wget
- если много разных закачек идет, то учить баш, выдирать номер нужного процесса и его стопать. Примерно так: ps ax | grep Dwebl | cut -d " " -f2 - напечатает номер процесса в строке-команде которого встречается -Dweblogic, у тебя своя строка будет, например | grep wget | grep имя_файла_который_качаем.

Гдето так.
Drink Different, Understand Computer.
Bye.

Оффлайн le6681

  • Автор темы
  • Участник
  • *
  • Сообщений: 205
  • Linux Mint 12
    • Просмотр профиля
Re: использование crontab
« Ответ #4 : 14 Март 2009, 20:22:16 »
в результате моих потуг родился такой файл crontab:

# m h  dom mon dow   command
10 0 * * * wget -c ftp://ftp.mandriva.ru/mandriva/official/iso/2009.0/mandriva-linux-free-2009-dvd-i586.iso
45 7 * * * killall -9 wget

1.поправте пожалуста если что можно улучшить и дописать... и как теперь можно wget вытащить из фона чтобы увидеть прогресс закачки?
2. как можно указать системе что необходимо разорвать соединение с интернетом после остановки закачки?
« Последнее редактирование: 14 Март 2009, 21:25:00 от le6681 »
Вы можете спросить ;)
Athlon 64X2 5400+, 3Gb DDR2, NV450GTS, HDD 750Gb, 4G modem
Blender 3D

Оффлайн afon

  • Старожил
  • *
  • Сообщений: 1110
  • Drink Different!
    • Просмотр профиля
Re: использование crontab
« Ответ #5 : 15 Март 2009, 01:02:48 »
Поправляем.
Лучше будет если в тасках кронтаба НЕ БУДЕТ команд. Создай исполняемый файл, в него накидай команды, хоть целую программу, а в таске прописывай полный путь к скрипту.
1. Процесс из фона/в фон - учи fg <pid> / bg <pid>
2. Скриптом в той же таске из того же скрипта где убивается wget

Не хочу показаться нехорошим человеком, но: поисковик, строка "linux запуск процесса в фоне" , "linux управление процессами" и тд. Потом ты узнаешь jobs, fg, bg и ищешь про них. Все уже написано до нас :)

PS: прошу прощения, был напуган :)
Слышал звон.... да не знал где он. Хорошее руководство http://heap.altlinux.org/modules/linux_processes.kirill/index.html.
bg должен показать просто список бекграундных процессов, потом их можно вытащить наружу
« Последнее редактирование: 15 Март 2009, 02:12:17 от afon »
Drink Different, Understand Computer.
Bye.

Оффлайн tolstyj

  • Участник
  • *
  • Сообщений: 186
    • Просмотр профиля
Re: использование crontab
« Ответ #6 : 15 Март 2009, 05:11:23 »
в результате моих потуг родился такой файл crontab:

# m h  dom mon dow   command
10 0 * * * wget -c ftp://ftp.mandriva.ru/mandriva/official/iso/2009.0/mandriva-linux-free-2009-dvd-i586.iso
45 7 * * * killall -9 wget

1.поправте пожалуста если что можно улучшить и дописать... и как теперь можно wget вытащить из фона чтобы увидеть прогресс закачки?
2. как можно указать системе что необходимо разорвать соединение с интернетом после остановки закачки?

Я бы по п.1 написал так

10 0 * * * wget -c  -i /home/your_name/download_list -o /home/your_name/wget.log

тогда все закачки будут браться из файла /home/your_name/download_list, соответственно, тебе не нужно будет каждый раз лазить в кронтаб и прописывать закачку для каждого файла, а так накидал линков в текстовый файл и ушел спать.
А вывод будет писаться в /home/your_name/wget.log, который ты можешь просмотреть, например, командой tail  /home/your_name/wget.log

Почитай man wget, может найдешь еще что-то интересное для себя.

по второму пункту, напиши скрипт вида

killall -9 wget && {команда, разрывающая соединение}
кинь его в свою домашнюю папку (сделай исполняемым), а в кронтабе пропиши ссылку на него, как предложил afon выше.

Оффлайн le6681

  • Автор темы
  • Участник
  • *
  • Сообщений: 205
  • Linux Mint 12
    • Просмотр профиля
Re: использование crontab
« Ответ #7 : 15 Март 2009, 19:57:35 »
супер! )) спасибо за советы всем!! ))

сдела по типу 10 0 * * * wget -c  -i /home/your_name/download_list -o /home/your_name/wget.log

но вот с отключением сети казус....
пишу в скрипте вот так:

#/bin/sh

killall -9 wget && ifconfig ppp0 down

в итоге закачка убилась, а сеть осталась..?? как быть? я так понял надо рутовые права... но как их дать команде ifconfig если запуск кронтаба из под простого пользователя??
Вы можете спросить ;)
Athlon 64X2 5400+, 3Gb DDR2, NV450GTS, HDD 750Gb, 4G modem
Blender 3D

Оффлайн SkeL2007

  • Участник
  • *
  • Сообщений: 204
    • Просмотр профиля
Re: использование crontab
« Ответ #8 : 15 Март 2009, 20:27:04 »
Ну запускай от рута,  чем проблема))

Оффлайн le6681

  • Автор темы
  • Участник
  • *
  • Сообщений: 205
  • Linux Mint 12
    • Просмотр профиля
Re: использование crontab
« Ответ #9 : 15 Март 2009, 20:38:39 »
Ну запускай от рута,  чем проблема))
так вот что получается....
пишу sudo crontab -e
редактирую файл кронтаба, сохранил..
и все.... запуска нет. почему не понимаю.... ведь если кронтаб делать от рута через судо то и сам кронтаб будет для рута сделан. я так понял?
где выход подскажите пожалуста
Вы можете спросить ;)
Athlon 64X2 5400+, 3Gb DDR2, NV450GTS, HDD 750Gb, 4G modem
Blender 3D

Оффлайн SkeL2007

  • Участник
  • *
  • Сообщений: 204
    • Просмотр профиля
Re: использование crontab
« Ответ #10 : 15 Март 2009, 20:57:22 »
Все верно. Запуск будет по расписанию.

Оффлайн le6681

  • Автор темы
  • Участник
  • *
  • Сообщений: 205
  • Linux Mint 12
    • Просмотр профиля
Re: использование crontab
« Ответ #11 : 15 Март 2009, 21:27:44 »
Все верно. Запуск будет по расписанию.
да действительно )) всегда упускаю что то ))) все работает как надо, всем еще раз спасибо! )
проблема решена.
 итог:
sudo crontab - поднимаю соединение, запуск качалки, стоп качалки и разрыв соединения
# m h  dom mon dow   command
10 0 * * * wvdial mega_usb
11 0 * * * wget -c -i /home/le6681/d_list -o /home/le6681/wget.log
20 6 * * * /home/le6681/enddownload

скрипт остановки закачки и отключения от интернет
#/bin/sh

killall pppd
killall -9 wget

все действительно просто ))
« Последнее редактирование: 15 Март 2009, 22:55:44 от le6681 »
Вы можете спросить ;)
Athlon 64X2 5400+, 3Gb DDR2, NV450GTS, HDD 750Gb, 4G modem
Blender 3D

Оффлайн Polkan

  • Участник
  • *
  • Сообщений: 124
    • Просмотр профиля
Re: использование crontab
« Ответ #12 : 15 Март 2009, 23:42:24 »
killall pppd
killall -9 wget
Было бы логичнее поменять их местами. Или я что-то не понимаю?

Оффлайн le6681

  • Автор темы
  • Участник
  • *
  • Сообщений: 205
  • Linux Mint 12
    • Просмотр профиля
Re: использование crontab
« Ответ #13 : 15 Март 2009, 23:45:06 »
точно ))) опять упустил... спасибо )
Вы можете спросить ;)
Athlon 64X2 5400+, 3Gb DDR2, NV450GTS, HDD 750Gb, 4G modem
Blender 3D

 

Страница сгенерирована за 0.088 секунд. Запросов: 22.