LinuxForum.Fans
Тема

Периодическое скачивание файлов на сервер.

Автор: aero 16 сообщений 3810 просмотров
#306008

Доброго времени суток уважаемые форумчане,
столкнулся с проблемой на сервере: необходимо скачивать определенный txt файл в нужную директорию на сервере каждые полчаса(или час) заменяя старый.
Перерыл инет в поисках ответа, но так и не смог реализовать подобную систему =(
Помоги пожалуйста! Возможно ли и как запустить такую систему??

П.С. объясните по пальцам для чайников :[
Заранее огромное спасибо.

#306038

Откуда скачивать?

"aero" написал:
Возможно ли и как запустить такую систему??

Возможно. Копайте в сторону cron.

#306049
"-=Serj=-" написал:
Копайте в сторону cron.

...и wget.

#306071

Копал. Но не робит ничего((
подскажите плз что написать в системе...

#306876

"aero⇓" написал:
Копал. Но не робит ничего((
Чем менее абстрактен вопрос, тем более детален будет ответ. Конкретизируйте в чем проблема. Как работает крон? Как создать скрипт? Как пользоваться wget-ом? Как создать папку.))
#307043

скачивать откуда? ссылка постоянная?
можно пример того что вы накопали?

#307077

Тут наверно самое сложное, это замена старого новым. Думаю, лучше сначала скачать новый и при успехе, заменить им(удалить старый и переименовать или переместить новый) старый. А не удалив старый, качать новый.

#307079

Приблизительно как-то так
[console]
#!/bin/bash
local_dir=/home/user/
remote_dir=http://site.com/file.txt
wget -P $local_dir $remote_dir -O new_file.txt
rm $local_dir/file.txt
mv new_file.txt file.txt
exit
[/console]

Потом это все это сохранить в файл, сделать исполняемым и его добавить в cron

#307097

Я никогда не имел дело со всем этим. Понимаю, возможно глупо разъясняюсь...
Вообщем есть некоторый файл users.txt на определенном хостинге(сайте). Мне нужно,чтобы этот файл скачивался каждый час (полчаса),переименовывался в файл banned.txt, и сохранялся в директории выделенного сервера root/server/
Можно ли это организовать без запиливания скриптов тупо через крон?
Нашел на сайте что-то типа:
*/2 * * * * /usr/bin/wget /home/lesnik17/txt/ -O book.txt http://books.ru/books/mаrinina.txt

забил его в crontab -e как(скачивать каждые 5 минут):

*/5 * * * * /root/server/ -O white-list.txt http://arleonserv.p.ht/users.txt

На что крон ответил: no crontab for root - using an empty one

#307111

В общем суть какая, сейчас я могу нести ахенею, но если что меня поправят.
Чтобы не запиливать файл, хотя разницы наверно особо и нет, можно все просто там прописать.

Редактирование производится командой
[console]crontab -e[/console]это редактирование cron текущего пользователя, поэтому чтобы были права суперпользователя root необходимо запустить эту команду от его имени.

По поводу вашей ошибки
[console]no crontab for root - using an empty one[/console]это у вас нет пустой последней строки. Она нужна обязательно.

И по поводу вашей команды
[console]*/5 * * * * /root/server/ -O white-list.txt http://arleonserv.p.ht/users.txt[/console]Тут нет самой команды, /usr/bin/wget, затем -O white-list.txt означает что файл на сервер скачается под именем white-list.txt
Путь /root/server/ так задать не получится, надо либо сначала сменить директорию командой cd или задать путь самому wget с помощью ключа -P /root/server

#307182

Спасибо за подробный обзор, т.е. полная команда получится как:

*/5 * * * * /usr/bin/wget -P /root/server/ -O white-list.txt http://arleonserv.p.ht/users.txt

Или не так?

#307184
aero написал:
Спасибо за подробный обзор, т.е. полная команда получится как:

*/5 * * * * /usr/bin/wget -P /root/server/ -O white-list.txt http://arleonserv.p.ht/users.txt

Или не так?

Похоже.
По-идее, можно просто

text

*/5 * * * * /usr/bin/wget -O /root/server/white-list.txt http://arleonserv.p.ht/users.txt
#307200

Урааа,
спасибо большое,работает!)
Ребят,вы лучшие! =D

#307211

Только наверно white-list, наверно надо на banned менять.

#307271

Вообщем у меня появился еще один вопрос =(
Понимаю,что уже не совсем по теме,н не хочется ради него создавать новую тему.
Вообщем нужно чтобы каждые пол часа на сервере (Линукс,Дебиан) в определенном окне ( screen -x server) выводился необходимый текст
Это можно как то реализовать через echo??

Войдите или зарегистрируйтесь, чтобы ответить.