У меня есть очень простой bash-скрипт, который запускает nmap и экспортирует результаты в xml-файл, и использует scp для загрузки файла на сервер:

#!/bin/sh
nmap -sn -oX /home/scan.xml 192.168.20.1-255
wait
scp scan.xml root@myserver:/home/dropoff

Я могу просто запустить скрипт из командной строки, набрав: sh scan.sh

... и это выполняется без нареканий. Тем не менее, когда я планирую запустить его через задание cron, он завершается неудачно и возвращает следующее:

Failed to open XML output file /home/scan.xml for writing
QUITTING!
scan.xml: No such file or directory

Я попытался переименовать файлы, изменить разрешения для них, переместить их в разные каталоги, но я все равно получаю ту же ошибку, независимо от того, что я делаю. Любая помощь или направление, которое вы могли бы предоставить, было бы здорово. (Я очень новичок в Linux - я недавно сменил работу и работал в 100% Microsoft Environment в течение последних 15 лет, и я был немного защищен.)

2 ответа2

0

Как следует из следующего поста на linuxquestions.org, ваш $ PATH не будет доступен для процесса, который выполняет cron. Следовательно, процесс не будет знать, где найти nmap, если вы просто вызовете nmap без указания полного местоположения.

https://www.linuxquestions.org/questions/linux-software-2/nmap-with-cron-does-not-seem-to-work-213294/

Чтобы узнать, где находится ваш двоичный файл nmap, введите "which nmap" на сервере, на котором он запущен. На моем MacBook это /usr/local/bin/nmap , но - как обычно - YMMV ;-)

Если это не сработает, попробуйте другое решение по той же ссылке для устранения неполадок.

-1

Я думаю, что это потому, что путь к файлу на SCP является неполным.

#!/bin/sh nmap -sn -oX /home/scan.xml 192.168.20.1-255 wait scp /home/scan.xml root@myserver:/home/dropoff

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .