Вы, безусловно, можете просмотреть импортированный atop
файл журнала на другой машине, на которой работает atop
, так как atop
работает в собственном двоичном формате, и каждый файл представляет собой самостоятельный -репозиторий/БД статистики.
Вы также можете увидеть это непосредственно с удаленной машины, выполняющей:
ssh remote_machine "sudo atop -r /var/log/atop/atop_20180904"
В конечном счете, если вы хотите отслеживать в журнале несколько серверов Unix, может быть более практичным на данный момент отслеживать их через SNMP с чем-то вроде Cacti .
Я бы адаптировал предыдущее решение к:
lsuser -C -a account_locked time_last_login id ALL | awk -F: '$4 > 100'
Это дает вам вывод, разделенный двоеточием -в форме:
#name:account_locked:time_last_login:id
abcdef:false:1517991441:1594
ghijkl:false:1466418488:3430
mnopqr:false:1437508829:1081
stuvwx:false::2393
yz:false::2616
Пустые поля указывают на отсутствие значения (, например, для поля «учетная запись _заблокирована» в последних двух ). Я оставил строку заголовка, чтобы можно было увидеть корреляцию с данными, но если вы хотите пропустить это, настройте скрипт awk
, чтобы пропустить первую строку:
lsuser -C -a account_locked time_last_login id ALL | awk -F: 'NR > 1 && $4 > 100'
Если вы не хотите, чтобы UID отображались в отчете, настройте оператор awk
так, чтобы он печатал только первые три поля.:
lsuser -C -a account_locked time_last_login id ALL | awk -F: '$4 > 100 { print $1":"$2":"$3 }'
Чтобы окончательно ответить на вопрос, какие аккаунты не заблокированы и на которые ни разу не заходил:
lsuser -C -a account_locked time_last_login id ALL | awk -F: '$4 > 100 && $2 == "false" && $3 == "" { print $1 }'
Если вы действительно хотите начать с существующей команды, вы можете использовать ее для создания имен пользователей в качестве аргументов для lsuser
, а затем использовать те же фильтры awk
, что и выше:
for username in $(awk -F: '$3 > 100 { print $1 }' < /etc/passwd)
do
lsuser -C -a account_locked time_last_login "$username" | awk -F: '$2 == "false" && $3 == "" { print $1 }'
done
Имена пользователей AIX не могут содержать пробелы, знаки табуляции или символы новой строки , так что если ваша переменная IFS настроена правильно, риск случайного разделения отсутствует.