A simple bash shell script to wake up nas devices / home servers using mac address.
#!/bin/bash # A simple shell to Wake Up nas devices / home servers # Tested on RHEL, Debian and Ubuntu base desktop systems. # ---------------------------------------------------------------------------- # Written by Vivek Gite <http://www.cyberciti.biz/> # (c) 2012 nixCraft under GNU GPL v2.0+ # ---------------------------------------------------------------------------- # Last updated: 14/May/2012 # ---------------------------------------------------------------------------- # add your nas devices mac address here # _nas03="00:xx:yy:zz:aa:aa" _nas02="xx:yy:zz:aa:bb" _nas01="00:xx:yy:zz:aa:cc" # path to wakeonlan # __wakeupserver="/usr/bin/wakeonlan" # who am I ? # _me="${0##*/}" # send magic packet # __wakeup(){ local n="$1" [[ "$n" == "" ]] && { echo "$_me ($FUNCNAME#$LINENO) error: Mac address not set."; exit 1; } || $__wakeupserver $n } ## main logic ## case $_me in wakeup.nas03) __wakeup $_nas03;; wakeup.nas02) __wakeup $_nas02;; wakeup.nas01) __wakeup $_nas01;; *) echo "$_me I can not understnad the request." esac
How do I use this script?
First, install Wake-on-LAN (WOL) client under Unix or Linux operating systems.
Next, download this script and put in your home directory as master.wol.sh
wget -O 558.sh.zip 'http://bash.cyberciti.biz/dl/558.sh.zip?id=82aa046ab4872920e2fb0c9add0bd169'
unzip 558.sh.zip
mv 558.sh ~/bin/master.wol.sh
chmod +x ~/bin/master.wol.sh
Edit the script and set nas server mac address. Finally, create a symbolic link using ln command:
ln -s master.wol.sh wakeup.nas01
ln -s master.wol.sh wakeup.nas02
ln -s master.wol.sh wakeup.nas03
To wake up nas01 using WOL, enter:
/path/to/wakeup.nas01
- RSS feed or Weekly email newsletter
- Share on Twitter • Facebook • 2 comments... add one ↓
Category | List of Unix and Linux commands |
---|---|
File Management | cat |
Firewall | Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04 |
Network Utilities | dig • host • ip • nmap |
OpenVPN | CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04 |
Package Manager | apk • apt |
Processes Management | bg • chroot • cron • disown • fg • jobs • killall • kill • pidof • pstree • pwdx • time |
Searching | grep • whereis • which |
User Information | groups • id • lastcomm • last • lid/libuser-lid • logname • members • users • whoami • who • w |
WireGuard VPN | Alpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04 |
The Buffalo nas will start in this way above! Thats good.
But then after 3 min it will go down again because of Buffalo NAS systems have an “Auto Power” mode: the NAS stays up&running while the (windows) pc is running. It’s done with a (windows) service, always running, that send 3 (why 3?) wake-on-lan packets to the NAS every (about) 30 seconds. When you shutdown the pc, the NAS stops receiving w-o-l packets, wait about 3 minutes, then shutdown itself.
I found a solution for that here:
http://ubuntuforums.org/showthread.php?t=1410353
_nas02=”00:xx:yy:zz:aa:bb”
It would be nicer to do an indirect call to the variable that is the name with which you call the program to avoid the case clause, but I don’t know how that is done in bash. I mean to recall the value of the variable whose name is the value of a variable.