Иногда возникает задача периодически скачивать файл или страницу с удалённого сервера и сохранять её в определённую папку. При этом использовать bash-скрипт не всегда возможно.
Вопрос решается следующим образом:
Создайте файл с именем download.php и вот таким содержимым (пример скачивает somefile.xml и копирует его в папку сайта /xml/):
<?php exec ('wget -O somefile.xml -x http://www.example.com/somefile.xml'); exec ('mv somefile.xml ./xml/'); ?>
В этом скрипте,
- somefile.xml — имя, с которым файл будет сохраняться после скачивания (если такой файл уже есть — он будет перезаписан)
- http://www.example.com/somefile.xml — ссылка на скачиваемый файл
Целевая папка должна быть создана в папке сайта! Если этого не сделать — скрипт будет возвращать ошибку!
В крон же добавляется задача вот такого вида:
/usr/local/bin/php -f /home/accountname/site.com/www/download.php
Обратите внимание, что часть /usr/local/bin/php — может отличаться и зависит от пути к интерпретатору php на конкретном сервере!
спасибо, если бы знали сколько я это искал
Всегда рады помочь!
Вопрос, а можно ли загрузить файл на сайт при помощи cron по расписанию с удаленного ftp?
Почему бы и нет?
Создаем файл, например, с именем download.sh и пишем в него:
, где server.com - адрес или IP удаленного FTP-сервера
username - имя пользователя FTP
ftppassword - пароль от него же
/path/to/remote/folder/ - путь к папке на FTP-сервере, где лежит файл
filename.ext - имя скачиваемого файла
/path/to/save/folder/localfilename.ext путь к папке куда нужно сохранить файл и его имя на новом месте
Потом добавляем его в кронтаб как обычно (описано в заметке)
Спасибо, попробую.
Подправил код в комментарии. Почему-то встроенный редактор отказался его в начале отформатировать по-людски.