|
|
|
|
||||||
| comp.unix.shell Using and programming the Unix shell. |
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 |
|
Messages: n/a
Hébergeur: |
I am trying to get the script below to mail out 1 email to each person
logged in however: finger gives bash-3.1$ finger Login Name Tty Idle Login Time Office Office Phone rwm132 Robert Wesley Merritt pts/0 May 28 18:51 (reif.usask.ca) rwm132 Robert Wesley Merritt *pts/1 51d May 24 18:53 (reif.usask.ca) rwm132 Robert Wesley Merritt *pts/5 51d May 25 08:28 (reif.usask.ca) rwm132 Robert Wesley Merritt *pts/2 51d May 25 11:00 (reif.usask.ca) so I only want to send onee email, any ideas how i do that #!/bin/sh allnsid="" finger | awk '{print $1} {print $2} {print $4}'|while read nsid do read fn read ln allnsid="$allnsid $nsid" echo "hello $fn $ln" >> $nsid.txt echo "please" >> $nsid.txt echo "lof off " >> $nsid.txt echo "the" >> $nsid.txt echo "machine" >> $nsid.txt #mail -s logoff $nsid@mail.usask.ca < $nsid.txt case $allnsid in *$nsid*) echo "mailing to $nsid $fn $ln" ;; esac echo $allnsid done |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
merrittr wrote...
> >I am trying to get the script below to mail out 1 email to each person >logged in however: man wall Wall displays the contents of file or, by default, its standard input, on the terminals of all currently logged in users. |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
merrittr wrote:
> I am trying to get the script below to mail out 1 email to each person > logged in however: > > finger gives > bash-3.1$ finger > Login Name Tty Idle Login Time Office > Office Phone > rwm132 Robert Wesley Merritt pts/0 May 28 18:51 > (reif.usask.ca) > rwm132 Robert Wesley Merritt *pts/1 51d May 24 18:53 > (reif.usask.ca) > rwm132 Robert Wesley Merritt *pts/5 51d May 25 08:28 > (reif.usask.ca) > rwm132 Robert Wesley Merritt *pts/2 51d May 25 11:00 > (reif.usask.ca) > so I only want to send onee email, any ideas how i do that > > > > > #!/bin/sh > > allnsid="" > finger | awk '{print $1} {print $2} {print $4}'|while read nsid > do > read fn > read ln > allnsid="$allnsid $nsid" > echo "hello $fn $ln" >> $nsid.txt > echo "please" >> $nsid.txt > echo "lof off " >> $nsid.txt > echo "the" >> $nsid.txt > echo "machine" >> $nsid.txt > #mail -s logoff $nsid@mail.usask.ca < $nsid.txt > > case $allnsid in > *$nsid*) > echo "mailing to $nsid $fn $ln" > ;; > esac > > echo $allnsid > done > Maybe you can use wall that will send a broadcast message to all terminals (shells). Maybe you have getent passwd this works better than finger. #!/bin/sh getent passwd | awk -F: 's[$1]++==0 && s[$3]++==0 {print $1":"$5}' while read line do IFS=":" set $line echo " Hello $2 please log off." | mail -s logoff $1@mail.usask.ca done The awk line eliminates duplicates of fields 1 (ID) and 3 (UID). -- Michael Tosch @ hp : com |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
In article <1180405184.971791.263810@o11g2000prd.googlegroups .com>,
merrittr <merrittr@gmail.com> wrote: > I am trying to get the script below to mail out 1 email to each person > logged in however: > > finger gives > bash-3.1$ finger > Login Name Tty Idle Login Time Office > Office Phone > rwm132 Robert Wesley Merritt pts/0 May 28 18:51 > (reif.usask.ca) > rwm132 Robert Wesley Merritt *pts/1 51d May 24 18:53 > (reif.usask.ca) > rwm132 Robert Wesley Merritt *pts/5 51d May 25 08:28 > (reif.usask.ca) > rwm132 Robert Wesley Merritt *pts/2 51d May 25 11:00 > (reif.usask.ca) > so I only want to send onee email, any ideas how i do that > > > > > #!/bin/sh > > allnsid="" > finger | awk '{print $1} {print $2} {print $4}'|while read nsid > do > read fn > read ln > allnsid="$allnsid $nsid" > echo "hello $fn $ln" >> $nsid.txt > echo "please" >> $nsid.txt > echo "lof off " >> $nsid.txt > echo "the" >> $nsid.txt > echo "machine" >> $nsid.txt > #mail -s logoff $nsid@mail.usask.ca < $nsid.txt > > case $allnsid in > *$nsid*) > echo "mailing to $nsid $fn $ln" > ;; > esac > > echo $allnsid > done finger | awk '{fullname[$1]=$2 " " $4 } END {for (id in fullname) print id, fullname[id]}' | \ while read nsid fn ln do mail -s logoff $nsid@mail.usask.ca <<EOF hello $fn $ln please log off the machine EOF done -- Barry Margolin, barmar@alum.mit.edu Arlington, MA *** PLEASE post questions in newsgroups, not directly to me *** *** PLEASE don't copy me on replies, I'll read them in the group *** |
|
![]() |
| Outils de la discussion | |
|
|