2017-01-07 9 views
1

У меня есть файл, содержащий только IP-адреса и номера портов. Я знаю, как запустить сервис по его имени, но как запустить и остановить его по номеру порта?Как удаленно запускать и останавливать службу по номеру порта?

for port in $(cat /home/asd/iplog.txt); do 
    service /etc/init.d/$port | cut -d\: -f2 start 
done 

здесь выход iplog.txt:

192.168.1.2:21 
192.168.2.25:80 
192.168.5.230:25 

и выход сценария:

/etc/init.d/192.168.1.2:21: unrecognized service 
cut: start: no such file or directory 
/etc/init.d/192.168.2.25:80: unrecognized service 
cut: start: no such file or directory 

Теперь у меня есть два вопроса:

  • Как туда начать и остановить сервис по его номеру порта?
  • как это сделать удаленно?

как я не знаком с командами оболочки, мне очень нужна ваша помощь.

+0

Я думаю, этот подход является по своей сути недостатки: для любой здравомыслящего функционирования системы, услуги должны быть известна, иногда услуги должны быть запущены или остановлены в определенном порядке, и т.д. использовать некоторые оркестровки решения, например, , Salt, чтобы управлять вашим сервисом. –

ответ

0

Как найти PID/команду службы по ее номеру порта?

Вы можете убить его/их, чтобы остановить службу. Но это не самый лучший способ.

#lsof-i :22 
Command PID USER FD TYPE DEVICE SIZE/OFF NODE NAME 
sshd 14543 root 3u IPv4 4132251  0t0 TCP *:ssh (LISTEN) 
sshd 14543 root 4u IPv6 4132253  0t0 TCP *:ssh (LISTEN) 
#ps 14543 
PID TTY  STAT TIME COMMAND 
14543 ?  Ss  0:00 /usr/sbin/sshd 

как это сделать удаленно?

ssh [email protected] 'your command to stop service' 
+0

«lsof -i: port» показывает только, работает ли служба или нет. Это не начало или прекращение права на обслуживание? –

+0

@RAZHamraz правый. Он возвращает PID, если служба запущена. С помощью этого PID вы можете найти командную строку. Затем запустите или остановите его, как хотите. Например. ps -p 1453 -o comm = он возвращает «sshd» – Will

+0

@RAZHamraz Как упоминал Роман Сузи, вам лучше определить, какая служба прослушивает эти порты, и какая правильная команда проверяет его статус/запуск/останов. – Will

 Смежные вопросы

  • Нет связанных вопросов^_^