As Coursera doesn’t simply use HTTP basic authentication to protect access to the slides and videos of their courses, using curl or wget to download them is not an option.
Conveniently, there’s already a python script that can do this (and even names the files properly):
I used to have a headless Linux LAN server that ran 24/7, i.e. even when I actually didn’t use it. Now, it powers itself off automatically as soon as it doesn’t detect any running workstations/notebooks (with dynamically assigned IP addresses) in the LAN.
Here’s how to do it:
In /usr/local/bin, create a new bash script named “shutdown_if_no_dhcp_client_in_lan” with the following content:
# Shutdown the box if there aren't any (not ignored)
# DHCP clients in the LAN
# ignore the skype base station
# dhcp range starts at 192.168.1.$dhcpstart
# dhcp range ends at 192.168.1.$dhcpend
for i in $(seq $dhcpstart 1 $dhcpend)
# returns 0, if ip reachable. returns 1, if not reachable
ping -w 1 -q 192.168.1.$i >/dev/null
if [ "$?" = "0" ]; then
# check whether this ip should be ignored
if [ "`ip neighbor|grep 192.168.1.$i|grep $ignored_macaddr|wc -l`" = "1" ]; then
echo "192.168.1.$i is reachable but ignored"
echo "192.168.1.$i is reachable and NOT ignored"
# exit the program without shutting down the box
echo "192.168.1.$i is NOT reachable"
# we didn't find any (not ignored) DHCP client in the LAN
# we can thus shutdown this box
echo "warning the users and shutting down the box in 5 minutes"
shutdown -h -P +5 Please save your work now!
(Adjust the script to your LAN environment)
In /etc/crontabs, add:
*/20 * * * * root /usr/local/bin/shutdown_if_no_dhcp_client_in_lan >/dev/null 2>&1
Now the LAN server will shutdown automatically after a while when no workstations/notebooks are running anymore. Note that this can happen 5 to 25 minutes after the last activity and isn’t fault-tolerant at all. The script can easily be improved however.