Использование wget с командной строкой Windows для загрузки файлов вне каталога сайта


0

Я должен загрузить файлы, которые находятся за пределами каталога моего сайта, используя wgetWindows, позвольте мне сделать это более понятным.

Мой сайт работает на сервере Linux.

Domain  ---> www.example.com

/var/www/html ---> This is the my site directory

/home/username/data.csv  ---> This is the file I wants to download

Когда я пытаюсь скачать любой файл из каталога сайта, он работает нормально, но не скачивается отсюда /home/username/data.csv

c:\wget\ wget.exe --ftp-user="username" --ftp-password="password" "www.example.com/index.php"

Приведенная выше команда работает хорошо и index.phpфайл успешно загружен.

Но как настроить таргетинг на /home/username/data.csvфайл и скачать с помощью wget?

Я пытался с этим, но я был уверен, что это не сработает.

c:\wget\ wget.exe --ftp-user="username" --ftp-password="password" "www.example.com/home/username/data.csv"

Я могу понять, почему эта команда не работает и возвращает 404 error, потому что домен указывает на /var/www/htmlкаталог, следовательно, wgetвнутренне читает его как, /var/www/html/home/username/data.csvи это правда, что такого файла нет.

Поэтому мой вопрос: wgetпринимает ли путь?

Как мне скачать файл за пределами каталога моего сайта?


просто глядя на jist, как насчет -H, чтобы охватить хозяев
— barlop

о, я понимаю, что вы спрашиваете, нет, вы не можете, очевидно, Это просто не в сети или FTP-сервер. хотя вы могли бы начать еще один в этом каталоге. но ssh позволит вам скопировать любой файл из терминала.
— Барлоп

Ответы:


1

Как мне скачать файл за пределами каталога моего сайта?

Вы не можете попросить веб-сервер предоставить его по соображениям безопасности.

Попробуйте вместо этого использовать ftp

wget ftp://username:password@www.example.com/data.csv

Если служба FTP недоступна, настройте ее или используйте sftpвместо нее для большей безопасности.


Служба FTP не настроена, и я попытался с SFTP, wget sftp://username:password@www.example.com/data.csvно он говоритUnsupported Scheme
— Shakti singh

wget не поддерживает sftp, есть отдельная клиентская программа. Для Windows вы можете использовать WinSCP или Putty sftp. Однако сначала вы должны убедиться, что на сервере запущены службы sshd и sftpd, и вам может потребоваться настроить некоторые учетные данные для аутентификации в зависимости от того, как настроен сервер. Как вы загружаете файлы на веб-сервер?
— RedGrittyBrick

0

Ваш веб-сервер обслуживает только файлы с /var/www/html/пути и не знает о существовании /home/username/. Вам нужно запустить какой-то экземпляр веб-сервера внутри, /home/username/прежде чем вы сможете wgetфайлы из этого каталога.

Вот несколько способов заставить это работать.


  • Запустите временный экземпляр HTTP-сервера, используя Python, в своем домашнем каталоге.

$ cd /home/username

$ python -m SimpleHTTPServer( python -m http.serverна Python 3.x)

$ wget http://example.com:8000/data.csv


  • Создайте символическую ссылку на /home/username/from /var/www/html/, хотя это не рекомендуется, поскольку она предоставляет весь ваш домашний каталог. Или создайте символическую ссылку на data.csvсебя.

$ cd /var/www/html/

$ ln -s /home/username/data.csv data.csv( ln -s /home/username homedirсимволическая ссылка на каталог)

$ wget http://www.example.com/data.csv

Убедитесь, что вы включили использование символических ссылок (глобально или только для этого Справочника). Options FollowSymLinks Смотрите здесь для получения дополнительной документации относительно символических ссылок.



хорошо, попробую
— Шакти Сингх

Спасибо, я не пробовал таким образом, но я думаю, что это должно работать. Я сделал это с WinScp.
— Шакти Сингх
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.