Sponsored Content
Top Forums UNIX for Dummies Questions & Answers Help with the functionality of the last (&/or who) command. Post 302577747 by agama on Tuesday 29th of November 2011 09:15:06 PM
Old 11-29-2011
This is a hack, and probably not the way I'd do it for anything other than a quick script, but it uses last to print the last 'n days' worth of users who were logged in. Prevents dups if a user logs in more than once per day and will not work with a BSD version of last.

Code:
#!/usr/bin/env ksh
# $1 from command line is number of days to go back; assuming someone 
# logged in each day (doesn't handle days where nobody logged in)

last -F -R | awk '
    BEGIN { soup = "JanFebMarAprMayJunJulAugSepOctNovDec"; }

    NF < 6 || /reboot/ || /begins/ || /still logged/ {next;}   # skip rubbish

    {
        m = int(index( soup, $4 ) / 3) + 1;     #convert month name to int
        d = sprintf( "%4d%02d%02d", $7, m, $5 );   # build a sortable date
        if( ! seen[d,$1]++ )
            who[d] = who[d] $1 " ";            # create user list by date
    }

    END {
        for( w in who )                 # for each user list print
            print w, who[w];
    }
' | sort -k 1n,1 | tail -${1:-15}
exit


Last edited by agama; 11-29-2011 at 10:16 PM.. Reason: typo
This User Gave Thanks to agama For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Restartibility Functionality....

Hello, I am trying to write a script that has a option of restarting the script from where it failed. I have to write a script called Batch.sh. This script has to run quite a few sql files as shown below: logcmd.sh -f test1.sql logcmd.sh -f test2.sql logcmd.sh -f test3.sql logcmd.sh -f... (4 Replies)
Discussion started by: rkumar28
4 Replies

2. SuSE

inconsistent ls command display at the command prompt & running as a cron job

Sir, I using the following commands in a file (part of a bigger script): #!/bin/bash cd /opt/oracle/bin ls -lt | tail -1 | awk '{print $6}' >> /tmp/ramb.out If I run this from the command prompt the result is: 2007-05-16 if I run it as a cron job then... (5 Replies)
Discussion started by: rajranibl
5 Replies

3. Shell Programming and Scripting

cp && rm command, rm: <file> not removed. No such file or directory

Hi, I am running this is korn shell cp $source/$fname $dest/dir && rm $source/$fname This was returned: rm: /dir/file not removed: No such file or directory The file could be found in the $dest directory which meant the cp was success. The above code is used in a for loop to move... (5 Replies)
Discussion started by: Leion
5 Replies

4. UNIX for Dummies Questions & Answers

sleep 10 && command doesn't work

Hi there, I found a trick to easily postpone a command by a few seconds: supernova:~# sleep 10 && command &If you logout, the command should still be executed... But not all the time. Could anyone of you explain me why the following command is executed even after logging out: supernova:~# sleep... (2 Replies)
Discussion started by: chebarbudo
2 Replies

5. UNIX for Dummies Questions & Answers

Problem with xterm & tcsh & sourcing a script in a single command

Hi friends, I have a script that sets the env variable path based on different conditions. Now the new path variable setting should not done in the same terminal or same shell. Only a new terminal or new shell should have the new path env variable set. I am able to do this only as follows: >cd... (1 Reply)
Discussion started by: sowmya005
1 Replies

6. UNIX for Dummies Questions & Answers

Command Functionality

Hi everyone, today i need that someone help to understand this particular line of command. So you can explain to me step by step, it will be great. ---------- Post updated at 11:53 AM ---------- Previous update was at 11:51 AM ---------- (9 Replies)
Discussion started by: Newer
9 Replies

7. Shell Programming and Scripting

[Solved] BASH - chaining TEST and COMMAND with && and II

Can you explain what this line of script is doing. What I have understood is : -- variable C is the name of a software which is either not installed, so it must be installed or allready installed and then should be update if newer version found -- branch B="$B $C" is to install the software --... (4 Replies)
Discussion started by: jcdole
4 Replies

8. Shell Programming and Scripting

Read input while another command is running &&

This script runs tshark, then displays the output. I want to read a keypress at all times throughout this script, especially during the 10 seconds that tshark is running. This code however, only takes input before tshark runs. #!/bin/bash main() { while (( "1" == "1" )) ; do keypress &&... (3 Replies)
Discussion started by: Kiah07
3 Replies

9. Shell Programming and Scripting

If && command giving wrong output

Hi All, I am trying to run a script which will search for 2 strings(stopped,started) in a text file and echo an output depending on below condition -bash-3.2$ cat trial1.txt v ggg f -bash-3.2$ cat trial1.sh VAR9=` grep 'stopped' /tmp/trial1.txt` VAR10=` grep 'started'... (4 Replies)
Discussion started by: srkmish
4 Replies

10. UNIX for Beginners Questions & Answers

Grep command functionality - discussed

what is the following bash command does grep `date +%Y-%m-%d --date='1 day ago'` /path/to/file/FILE_PREFIX_\`date +%Y%m%d --date='1 day ago'`.dsv | grep -v 'ERROR' | cut -d "|" -f 2 | sed 's/^0/27/' (1 Reply)
Discussion started by: tera
1 Replies
ruptime(1c)															       ruptime(1c)

Name
       ruptime - show host status of local machines

Syntax
       ruptime [ options ] [ machinename ]

Description
       The  command  gives  a  status  line  like  for each machine on the local network.  If a machinename is given, the status of only the named
       machine is given.  These status lines are formed from packets broadcast by each host on the network once a minute.

       Machines for which no status report has been received for 5 minutes are shown as being down.

Options
       -a   Users idle an hour or more are not counted unless this option is specified.

       -d   Display only those hosts that are considered down.

       -l   Sort the status list by load average.  If more than one sort option is given, uses the last one.

       -r   Show only hosts that are up and running.

       -t   Sort the status list by uptime.  If more than one sort option is given, uses the last one.

       -u   Sort the status list by number of users.  If more than one sort option is given, uses the last one.

       -nn  Show only those hosts with nn or more users.

Restrictions
       Because the daemon sends its information in broadcast packets it generates a large amount of network traffic.  On large networks the  extra
       traffic	may  be  objectionable.   Therefore,  the  daemon is disabled by default.  To make use of the daemon for both the local and remote
       hosts, remove the comment symbols (#) from in front of the lines specifying in the file.

       If the daemon is not running on a remote machine, the machine may incorrectly appear to be down when you use the command to  determine  its
       status.	See the reference page for more information.

       If  a  system  has  more  than 40 users logged in at once, the number of users displayed by the command is incorrect.  Users who login to a
       machine after that point fail to increment the user count that appears in the output of the command.  This is due to the maximum size limit
       of an Ethernet packet, which is 1500 bytes, and the fact that the daemon must broadcast its information in a single packet.

Files
       /usr/spool/rwho/whod.*	Information about other machines

See Also
       rwho(1c), rwhod(8c)

																       ruptime(1c)
All times are GMT -4. The time now is 09:19 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy