To get older than last 7days records using awk scripting to generate report and send email
Hello All,
I have need as below:
1--> I need to get all users(who submit jobs) and their details by using below command:
Code:
qstat -u \*
output of the above command looks line below:
Code:
job-ID prior name user-id state "submit/start at" queue jclass slots ja-task-ID
-------------------------------------------------------------------------------------------
147956 10.29988 python_val user1 r 07/19/2017 07:30:15 queue1 1
147960 10.29988 python_dev user1 r 07/19/2017 07:30:33 queue2 1
147504 0.31988 gbdt_1.4.1 user2 r 07/19/2017 05:41:20 queue3 1
122900 0.30988 run_python user3 r 07/10/2017 01:10:01 queue4 1
The above output is space separated and i am interested in job-id, user-id and submit/start at (which is job submit date) from the above output
2--> I have another command which displays all users details from ADS as below:
Code:
/ccore/pbis/bin/enum-members "adsusers"
The output of the above command looks like below: (i am displaying one user's output, complete output contains bulk of below same blocks)
Code:
User object [001] (XXXXXXXX)
============
Enabled:
Distinguished name:
SAM account name:
NetBIOS domain name:
UPN: email@FINCO.COM
Display Name:FName LName
Alias: user-id
UNIX name:
GECOS:
Shell:
Home directory:
Windows home directory:
Local windows home directory:
UID:
Primary group SID:
Primary GID:
Password expired:
Password never expires:
Change password on next logon:
User can change password:
Account disabled:
Account expired:
Account locked:
In the above output i am interested in UPN (email), Display Name, Alias (user-id) from the above output
3 --> Now the requirement is i need to get the job details which are running more than last 7 days and send those details to user (which i will get email id from point#2)
currently i am getting this by following script:
Code:
!#/bin/bash
for line in `qstat -u \* | awk -v dt="$(date "--date=$(date) -7 day" +%m/%d/%Y)" 'BEGIN{OFS=":"}/qw/{if($6<dt) print $4,$1}'`;
do
user=$(echo $line | awk -F":" '{print $1}');
jobid=$(echo $line | awk -F":" '{print $2}');
email=$(/ccore/pbis/bin/enum-members "adsusers" | grep ^UNIX -B3 | grep $user -B2 | grep UPN | awk '{print $2}');
userName=$(/ccore/pbis/bin/enum-members "adsusers" | grep ^UNIX -B3 | grep $user -B2 | grep -i "Display Name" | awk -F":" '{print $2}')
echo -e "Hello $userName,\n\n Job(s) with job id(s): $jobid executing more than last 7 days, hence request you to take action, else job will be killed in another 1 days, \n\n Thank you." | mailx -s "Long running job for user: $userName ($user) and Job ID: $jobid" "${email}"
done
I know i am using a pattern matching using qw which i had to do and i am getting output as below:
Code:
Email Subject: Long running job for user: FName LName (user-id) and Job ID(s): job-id
Email Body:
Hello FName LName,
Job(s) with job id(s): job-id executing more than last 7 days, hence request you to take action, else job will be killed in another 1 days,
Thank you.
How can i implement the above script using awk? I know I am using awk, but its in bits and peaces.
Also the issue with the above script is - if the user submit more than one job, for example 2 in above case (user1 with job id-147956 and 147960), he is receiving 2 separate emails, but he should receive one email with 2 job details.
Hi
A) I am able to send eMail using mailx from a UNIX ( solaris 8 ) host to my Outlook-email-ID : FName.Surname@Citigroup.com ( This is NOT my actual -eMail-ID). But in Outlook the "From :" eMail address is displayed as
" usr1@unix-host1.unregistered.email.citicorp.com " .i.e the words... (2 Replies)
Hi,
I have a datafile which has the following data and it can have much more records. The data set is as follows:
ISA~00~ ~00~ ~ZZ~F159B ~ZZ~U1CAD ~051215~184
3~U~00200~000011432~0~P~<
GS~FA~TC11A~U1CAD~051215~1843~000011432~X~002002
ST~997~0001... (6 Replies)
Hello. I just found out about awk, and it appears that this could handle the problem I'm having right now.
I first stumbled on the thread How to extract first and last line of different record from a file, and that problem is almost similar to mine.
In my case, an ASCII file will contain the... (0 Replies)
i have a file having 30 million records.i want to generate a file having say 5% of total records in another file. the records in the new file shud be randomly generated. (1 Reply)
Hello ,
I am trying to write a unix shell script to compare folder permission to say drwxr-x-wx and then send an email to my id in case the folders don't have the drwxr-x-wx permissions set for them .
I have been trying to come up with a script for few days now , pls help me:( (2 Replies)
hi, i'm running openldap on ubuntu 10.04, creating new items with apache directory studio (windows version).
i use the ldap just as an address book to our small office (email clients are windows live mail 2009, 2011, microsoft outlook 2007 and 2010).
a. i cant see a list of the contacts,... (0 Replies)
Hi
my requirement is that i want pull the bad records from input file and move those records in to a seperate file.
that file has to be sent via email..
any suggentions please (1 Reply)
I have written a shell script that calls below sql file. It is not sending the query data in table in the body of email.
spool table_update.html;
SELECT * FROM PROCESS_LOG_STATS where process = 'ActivateSubscription';
spool off;
exit;
Please use code tags next time for your code and data.... (9 Replies)
I have a objective of Sending email if latest file in a directory(excluding files of sub-dirs) is older than 2 hours.
eg : ls -ltr
drwx--x--x 2 abcde abc 256 2017-02-07 20:10 Mail
-rw-rw-r-- 1 abcde abc 1170 2017-02-24 17:30 test
-rw-rw-r-- 1 abcde abc 356 2017-03-09 18:00 xyz.csv... (3 Replies)
Hi ,
In a directory list of ddl files are stored in the given format above. Above is the sample ddl file. The ddl file name is same as that of table name ie email_notifications.ddl
I want to generate below report using awk utility reading all the ddl files stored in /ddl path
Desired output:... (1 Reply)