我创建了一个脚本,列出了服务器中的用户列表并通过电子邮件发送给他们。
我可以从多个主机获取用户列表,并且在发送列表之前还会过滤名为ignore.txt的文件(其中包含不需要的用户)。
现在的挑战是,/etc/passwd
的帐户被锁定(非活动)的用户。是否可以编辑下面的脚本并发送活动用户列表,以及帐户被锁定的用户列表?
新报告应反映活跃用户列表以及已禁用/锁定用户列表。
我目前的脚本如下:
#!/bin/ksh
#title :user.list.script.ksh
#description :This script collects list of users from the server
#note :Multiple hosts can be added
#HOSTS format:
HOSTS="00.00.00.00-DEV" #example "hostname-DEV"
FILE=/home/zaira/report.txt #list will be saved in report.txt
date > $FILE
echo >> $FILE
for host in $HOSTS; do
ip=$(echo $host|cut -d '-' -f 1)
title=$(echo $host|cut -d '-' -f 2)
ssh $ip -q -l zaira cat /etc/passwd | awk -F: '{printf("%-30s\t%-30s\t%-40s\n ", $1, $3, $5)}' >/tmp/temp 2>/dev/null
echo "$title instance" >> $FILE
perl -e 'print "=" x 65,"\n"' >>$FILE
#we filter through ignore.list to remove unwanted users
cat /tmp/temp|grep -wvf /home/zaira/ignore.list|sort >> $FILE
echo >> $FILE
done
rm -f /tmp/temp
mailx -r From-DEV-no-reply@abc.com -s " User list" zairabanu@abc.com < "$FILE"
答案 0 :(得分:1)
从内存开始,因为自从我使用AIX以来,它已成为一个厕所,ooo,ooo,ong时间,你可以使用lsuser
获取锁定帐户:
lsuser -a account_locked ALL | grep '=true$' | awk '{ print $1 }'
如果您不想手动维护忽略列表,可以获取可以登录的用户列表:
lsuser -a login ALL | grep '=true$' | awk '{ print $1 }'
关于OP原始脚本,您现在可以执行以下操作:
lsuser -a login ALL | grep '=true$' | awk '{ print $1 }' > /tmp/temp
实际上修改原始脚本留给了OP。