Экспорт данных netstat из терминала в файл csv

Вы можете попробовать сами:

$ cp /usr/bin/sleep /tmp/sleep
$ /tmp/sleep 20 &
$ truncate -s 1 /tmp/sleep
truncate: cannot open '/tmp/sleep' for writing: Text file busy

Система не позволяет вам изменить запущенный двоичный файл. Однако вы можете разорвать связь с файлом и изменить его:

$ /tmp/sleep 20 &
$ rm /tmp/sleep
$ cp /usr/bin/ls /tmp/sleep
$ [2]-  Done                    /tmp/sleep 20

Обратите внимание, что для сценариев оболочки ядро ​​не защищает сценарий, поскольку занятый двоичный файл - это, например, / bin / bash. Вы не должны перезаписывать файл сценария оболочки, но вы можете удалить его и заменить новым.

Что касается установки обновленных пакетов, то зависит от упаковщика, будет ли запущен запущенный демон или нет.Я не знаю, существует ли соглашение, но я просмотрел несколько примеров скриптлетов rpm в моей системе Fedora, и они, похоже, перезапускаются при обновлении. Например,

$ rpm --scripts -qf /usr/sbin/xinetd 
...
postuninstall scriptlet (using /bin/sh):
...
if [ $1 -ge 1 ] ; then 
    # Package upgrade, not uninstall 
    systemctl try-restart xinetd.service >/dev/null 2>&1 || : 
fi

Обновление пакета rpm -U запустит новые сценарии до и после установки, а затем старые сценарии до и после удаления. Как видно выше, postuninstall перезапустит службу systemd.


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

1
22.08.2017, 11:19
1 ответ

поскольку внешний адрес является 5-м столбцом, попробуйте вывести netstatс awk, вы можете легко собирать/манипулировать данными для каждого столбца.

netstat -tn|awk '{print $5}' 

вывод предоставит вам только пятый столбец, который является внешним адресом

#!/bin/bash

while true
do
    netstat -tn|awk '{print $5}' >> output.netstat
    sleep 60
done
2
27.01.2020, 23:45

Теги

Похожие вопросы