Learn Understand first, then practice while the concept is still fresh.

M43 - Task Automation

Schedule a small script safely with Windows Task Scheduler or Linux cron, and understand when systemd timers are worth learning next.

Scripting

Task Automation

Schedule a small script safely with Windows Task Scheduler or Linux cron, and understand when systemd timers are worth learning next.

35 min INTERMEDIATE BOTH Curriculum-reviewed
What you should be able to do after this
  • Schedule a small script safely with Windows Task Scheduler or Linux cron, and understand when systemd timers are worth learning next.

Automation Starts When You Stop Babysitting the Script

If you still have to remember to run the script yourself, the task is only partially automated.

Schedulers matter because they turn a useful script into a repeatable system behavior. The operating system becomes responsible for running the script at the right time.

The most practical beginner goals are:

  • run a safe script on a schedule
  • log what happened
  • verify the result later

1. Windows: Task Scheduler

Task Scheduler is Windows’ built-in scheduler. The GUI is often the easiest way to learn the workflow first.

Basic GUI Flow

  1. Open taskschd.msc.
  2. Create a basic task.
  3. Choose a trigger such as daily or at logon.
  4. Choose an action: start a program.

When scheduling a PowerShell script, point the task at powershell.exe and pass the script file as an argument.

Common Task Scheduler pattern

Program/script: powershell.exe Add arguments: -NoProfile -File “C:\Users\You\Documents\health_report.ps1”

CLI creation with schtasks

Create a daily scheduled task

schtasks /create /tn “DailyHealthReport” /tr “powershell.exe -NoProfile -File C:\Users\You\Documents\health_report.ps1” /sc daily /st 08:00

On Linux, the same idea is usually expressed through cron or systemd timers.

-NoProfile helps keep the task predictable by avoiding extra shell profile behavior.


2. Linux: Cron for Straightforward Repetition

Cron is still the simplest scheduler many Linux learners meet first. It is enough for many small jobs such as:

  • writing a timestamp to a log
  • rotating a practice report
  • running a local backup script
Cron basics

crontab -l crontab -e

A cron line combines a time pattern with a command:

Safe cron examples

0 8 * * * /home/you/scripts/health_report.sh >> /home/you/logs/health_report.log 2>&1 */15 * * * * /home/you/scripts/check_disk.sh >> /home/you/logs/check_disk.log 2>&1

The most important habits are:

  • use absolute paths
  • log output somewhere you can inspect later
  • start with a harmless script before scheduling anything more important

3. Linux: Why Systemd Timers Exist

Cron is simple, but it is not the end of Linux scheduling.

Systemd timers become attractive when you need:

  • closer integration with system services
  • better status inspection through systemctl
  • catch-up behavior after missed run times

You do not need to master timer unit files immediately, but you should know why they exist:

  • cron is quick and familiar
  • systemd timers are more integrated and easier to inspect on many modern distributions
See active timers

systemctl list-timers


4. Unattended Scripts Need Better Habits

Once a script runs in the background, there is no one watching the terminal.

That changes what matters:

  • clear output
  • log files
  • stable paths
  • safe defaults

Schedule Only What You Can Explain

Before scheduling a script, run it manually several times. If you do not yet trust its paths, output, or failure behavior, you are not ready to let it run unattended.


What You Just Learned

  • Task Scheduler and cron both solve the same core problem: running work at the right time without manual intervention.
  • On Windows, scheduled PowerShell scripts usually run through powershell.exe -NoProfile -File ....
  • On Linux, cron is a practical first scheduler for small repeatable jobs.
  • Systemd timers are worth learning when you need tighter integration and better observability.
  • Logging and absolute paths matter much more once a script runs unattended.

Next, you will build small scripted reports and backups that are actually worth scheduling.