我需要使用awk与Unix shell脚本相关的小帮助。 我有一个文件,如下所示:结合awk和其他命令发送报告给用户
139341 8.61248 python_dev ntoma2 r 07/17/2017 07:27:43 [email protected] 1
139342 8.61248 python_val ntoma2 r 07/17/2017 07:27:48 [email protected] 1
139652 8.61248 python_dev ntoma2 r 07/17/2017 10:55:57 [email protected] 1
这是空间分隔。我需要获得第一栏和第四栏,它们是基于第六栏(日期为日期 - 日/月/年)的job-id和用户名(本例中为ntoma2),大于7天。比较第6列和当前日期,我需要获得比7天更早的列。
下面我有一个拿到7天以上的作业ID和用户名:
cat filename.txt | awk -v dt="$(date "--date=$(date) -7 day" +%m/%d/%Y)" -F" " '/qw/{ if($6<dt) print $4,":",$1 }' >> ./longRunningJob.$$
而且我还有一个命令来获取电子邮件ID,如下面使用的用户名(从上面的第4列) :
/ccore/pbis/bin/enum-members "adsusers" | grep ^UNIX -B3 | grep <User-Name> -B2 | grep UPN | awk '{print $2}'
我需要结合上述2级的命令和需要将报告发送到每一个用户如象下面这样:
echo "Hello <User Name>, There is a long running job which is of job-id: <job-id> more than 7days, so please kill the job or let us know if we can help. Thank you!" | mailx -s "Long Running Job"
注意:如果用户名重复,则所有列表都应放在一封电子邮件中。
我不知道如何结合这两个并发送电子邮件给用户,有人可以帮我吗?
预先感谢您! Vasu
@Vasu现在您需要删除第一个注释以避免混淆错误和正确的内容.... –
我们需要看到'/ ccore/pbis/bin/enum-成员“adsusers”'确定如何将用户名映射到电子邮件地址。 –
用户对象[001](XXXXXXXX)\ n ============ \ n 启用:\ n 分辨名称:\ n SAM帐户名:\ n NetBIOS域名:\ n UPN:email @ FINCO。COM \ n 显示名称:\ n 别名:用户名\ n UNIX名称:\ n GECOS:\ n 壳牌:\ n 主目录:\ n 的Windows主目录:\ n 本地的Windows Home目录:\ n UID:\ n 主组SID:\ n 主要GID:\ n 密码过期:\ n 密码永不过期:在下次登录\ n 更改密码:\ n 用户可以更改密码: \ n 帐户被禁用:\ n 已过期帐户:\ n 帐户被锁定:\ n – Vasu