Я думаю at
команда - то, что Вы после.
Например:
echo "mail -s Test mstumm < /etc/group" | at 16:30
Это пошлет Вам по электронной почте копию /etc/group
в 16:30.
Можно читать больше о at
здесь: http://www.softpanorama.org/Utilities/at.shtml
Если Вы находитесь на Linux и можете обработать наличие ss
установленный:
ss -o state established '( dport = :5222 )'|awk -F"[\t :]+" 'NR!=1{ ip[$5]+=1 } END{ for (i in ip){n++};print n }'
Если Вы хотели бы awk, объясненный просто сообщенным мне.
Установите надлежащего разделителя полей, затем используйте awk встроенное соответствие regex для избавлений от властей. Вот версия с передачей по каналу вывода к uniq. IMO, нет никакой реальной потребности в том, чтобы полностью заменить uniq некоторым кодом awk, потому что это становится менее простым и меньше unix-y.
netstat -nt | gawk --re-interval -F':|[ ]+' '$7==5222 && $8=="ESTABLISHED" && $6 ~ /[0-9]{1,3}(\.[0-9]{1,3}){3}/{print $6}' | uniq
Но это не намного более сложно, и это все еще смотрит хорошо как острота:
netstat -nt | gawk --re-interval -F':|[ ]+' '$7==5222 && $8=="ESTABLISHED" && $6 ~ /[0-9]{1,3}(\.[0-9]{1,3}){3}/{a[$6]} END{for (i in a) print i}'
Попробуйте это:
netstat -nt | awk '/:5222.*ESTABLISHED/ { split ($5, a, ":"); print a[1] }' | uniq | wc -l
Было бы возможно сделать uniq и туалет в awk также, конечно, но это, вероятно, будет более подробным.
Чтобы перечислить все уникальные IP-адреса, которые в настоящее время подключены к определенному порту:
netstat -ntu | egrep ':80|:443' | grep -v LISTEN | awk '{print $5}' | cut -d\t -f5 | grep -Po '[0-9]{1,3}(\.[0-9]{1,3}){3}' | sort | uniq -c | sort -rn | grep -v 127.0.0.1
awk {awesomeness}
действительно! – motobói 11.04.2012, 22:16ss
! – motobói 11.04.2012, 23:02NR
не заполняет хеш, мы просто используем его для пропуска заголовков. Для первой строки,NR
будет равняться 1, затем следующая строка, которой это будет равняться 2 и так далее. Это хранит IP как индексное значение в IP [] массив. – Jodie C 12.04.2012, 02:30