Опция - disabled-password
не устанавливает пароль, это означает, что пароль не легален, но вход в систему все равно возможен (например, с помощью SSH RSA ключей).
Для создания пользователя без пароля используйте -d passwd -d $username
после создания пользователя, чтобы сделать пароль пустым. Обратите внимание, что не все системы позволяют пользователям с пустым паролем входить в систему.
Если вы хотите отправить вывод нескольких разных команд вместе в одном сообщении, не заморачивайтесь с временными файлами, сгруппируйте команды и просто используйте pipe:
(
date
echo
for host in $HOSTS; do
echo "${host/*-} instance"
perl -e 'print "=" x 65,"\n"
lsuser -a login ALL | awk '/=true$/ { print $1 }' | grep -wvf /home/angela/unwanteduser.list
echo
done
) | mailx -r From-account-server-no-reply@xyz.com -s "List of active Users and Locked users" angela@xyz.com
The (
. . )
запускает команду между скобками в отдельном подпроцессе, так что весь его стандартный вывод может быть собран в трубопровод.
Фильтрация может быть выполнена в момент генерации данных, а не в конце.
Если вы все равно используете awk
, то часть конвейера grep
можно исключить, поскольку awk
вполне способен сам выбирать строки для обработки. Это требует на один процесс меньше, что более эффективно.
Я также избавился от временной переменной "title", используя подстановку паттернов, чтобы избавиться от IP-адреса (заменяет *-
ничем).
Я бы прописал 65 символов =
, поскольку вызов perl для этого приводит к довольно значительным накладным расходам. Вы не заметите многого, выполняя только этот сценарий, но если вы возьмете за привычку и когда-нибудь напишете такой сценарий, который будет выполняться несколько раз в секунду, то вы заметите разницу.