Import old talks from 2010 and 2011 (Boston).
[libguestfs-talks.git] / 2011-boston / handout / lastlogin.sh
1 #!/bin/bash -
2
3 #set -x
4
5 winkey='HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon'
6 winval=DefaultUserName
7
8 # List of guests.
9 for name in $(virsh -q list --all | awk '{print $2}'); do
10     # What guest is it?
11     eval $(guestfish --listen --ro -d "$name" -i)
12     root=$(guestfish --remote "inspect-get-roots")
13     type=$(guestfish --remote inspect-get-type "$root")
14     guestfish --remote exit
15     # Depending on the guest type ...
16     case "$type" in
17         windows)
18             echo -n "$name "
19             virt-win-reg "$name" "$winkey" "$winval"
20             ;;
21         linux)
22             echo -n "$name "
23             virt-cat -d "$name" /var/log/wtmp > /tmp/wtmp
24             last -f /tmp/wtmp | \
25                 grep -Ev "^reboot|^shutdown|^wtmp begins|^$" | \
26                 tail -1 | \
27                 awk '{print $1}'
28             ;;
29         *)
30             echo -n "($name - unknown guest type, ignored)"
31             ;;
32     esac
33 done