WAKE ON SCHEDULE
Using a database of workstations’ login times, send Wake on LAN packets to specific workstations 5-10 minutes prior to the typical arrival of the user.
- This lets the user avoid having to sit through a possibly long boot up process.
- The system is ready for login when the user arrives.
- We run our virus scans, virus signature updates and system updates while waiting for the user to arrive.
- We don’t leave all the machines on all night consuming electricity.
- Each machine’s waking schedule is determined by the typical arrival time of the user.
- Create a database (or a file) to store the mac addresses and login times as they occur each day.
- Using your favorite method, write a program or a script to add an entry with a timestamp.
- Insert a line into your login script so that your program or script is run at every login.
- Remember to remove entries older than a week and to ignore entries that are subsequent in the same day. (If I login at 7am and reboot at 9:30am, we can ignore the 9:30am login.)
- Using your favorite method, write a program or script to find typical arrival (login) times that are within the next 5-10 minutes, get the mac addresses, and send WOL packets to those selected.
- Using CRON or scheduled tasks, run the program/script (created in step 5) every few minutes during work days. This can also be tuned to only run during certain hours of the day, preceding the start of a shift.
This does use 5-10 minutes more electricity, but the cost of that electricity is less than the 2-3 minutes of employee time spent watching a machine boot up. (Not to mention the great value of happy users!)
When a user plans a trip or a vacation, we currently disconnect the power cord so that the machine doesn’t come on while they are away. I’m working on a better solution to this piece.
When a user returns from a week or more absence, they will have to turn their machine on manually on their first day back at work. Another possible solution to this would be to have the machine power itself back off after a time in case the user misses work that day. (Using a power scheme to power off ALL idle machines after a period aggravates my users. I prefer a custom solution that will only power them off if nobody arrives and logs in.)