Bird
Raised Fist0
Linux CLIscripting~10 mins

Editing crontab (crontab -e) in Linux CLI - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Editing crontab (crontab -e)
User runs 'crontab -e'
↓
System opens crontab file in editor
↓
User edits or adds cron jobs
↓
User saves and exits editor
↓
System installs new crontab
↓
Cron daemon schedules tasks
↓
Tasks run at scheduled times
The user opens the crontab file with 'crontab -e', edits or adds scheduled tasks, saves and exits, then the system updates the schedule.
Execution Sample
Linux CLI
crontab -e
# Edit the file to add:
0 7 * * * /home/user/backup.sh
# Save and exit
This opens the crontab editor, adds a job to run backup.sh every day at 7:00 AM, then saves the changes.
Execution Table
StepActionSystem ResponseUser InputResult
1Run 'crontab -e'Opens crontab file in default editorN/ACrontab file ready for editing
2User adds line '0 7 * * * /home/user/backup.sh'File content updatedAdd cron job lineNew job scheduled
3User saves and exits editorSystem reads updated fileSave and exitCrontab updated
4System installs new crontabCron daemon reloads scheduleN/ANew job active
5Cron daemon runs job at 7:00 AMExecutes /home/user/backup.shN/ABackup script runs
6User runs 'crontab -l' to list jobsDisplays current cron jobsN/AShows new job in list
7User exitsNo further actionN/ASession ends
💡 User finishes editing and saves, system installs new crontab, then cron daemon schedules tasks accordingly
Variable Tracker
VariableStartAfter Step 2After Step 3Final
crontab file contentEmpty or previous jobsAdded '0 7 * * * /home/user/backup.sh'Saved updated contentUpdated crontab with new job
cron daemon scheduleOld scheduleNo change yetReloads new scheduleSchedules new job daily at 7:00 AM
Key Moments - 3 Insights
Why doesn't the new cron job run immediately after editing?
Because the cron daemon only reads the updated crontab after you save and exit the editor, as shown in steps 3 and 4 in the execution table.
What happens if you forget to save before exiting the editor?
The system will not install the new crontab, so your changes are lost. The execution table step 3 shows saving is required to update the schedule.
How can you verify your new cron job was added?
By running 'crontab -l' which lists current cron jobs, as shown in step 6 of the execution table.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what happens at step 4?
ACron daemon runs the scheduled job
BUser edits the crontab file
CSystem installs the new crontab and cron daemon reloads schedule
DUser lists current cron jobs
💡 Hint
Check the 'System Response' and 'Result' columns at step 4 in the execution table
At which step does the user save and exit the editor?
AStep 3
BStep 2
CStep 1
DStep 5
💡 Hint
Look for 'User saves and exits editor' in the 'Action' column of the execution table
If the user forgets to save the file, what will the cron daemon schedule?
AThe new job will be scheduled anyway
BThe old schedule remains unchanged
CThe cron daemon will show an error
DThe cron daemon will delete all jobs
💡 Hint
Refer to the key moment about saving changes and step 3 in the execution table
Concept Snapshot
Editing crontab with 'crontab -e':
- Opens your crontab file in an editor
- Add or change scheduled jobs (one per line)
- Save and exit to install changes
- Cron daemon reloads and runs jobs on schedule
- Use 'crontab -l' to list jobs
- Unsaved changes are lost
Full Transcript
When you run 'crontab -e', the system opens your crontab file in a text editor. You can add or edit scheduled tasks by writing lines with timing and commands. After editing, you must save and exit the editor. The system then installs the new crontab, and the cron daemon reloads the schedule to run your tasks at the specified times. You can check your current cron jobs anytime with 'crontab -l'. Remember, if you do not save before exiting, your changes will not be applied.

Practice

(1/5)
1. What does the command crontab -e do in Linux?
easy
A. It deletes all cron jobs for the current user.
B. It lists all scheduled cron jobs for all users.
C. It runs the cron daemon immediately.
D. It opens the current user's cron jobs for editing.

Solution

  1. Step 1: Understand the purpose of crontab -e

    This command opens the cron table for the current user in an editor so you can add or change scheduled tasks.
  2. Step 2: Compare with other options

    crontab -l lists jobs, not edits. Deleting or running the daemon are different commands.
  3. Final Answer:

    It opens the current user's cron jobs for editing. -> Option D
  4. Quick Check:

    crontab -e = edit cron jobs [OK]
Hint: Remember: '-e' means edit your cron jobs [OK]
Common Mistakes:
  • Confusing '-e' with '-l' which lists jobs
  • Thinking it deletes cron jobs
  • Assuming it runs cron immediately
2. Which of the following is the correct syntax to schedule a cron job to run every day at 3:30 AM using crontab -e?
easy
A. 30 3 * * * /path/to/script.sh
B. 3 30 * * * /path/to/script.sh
C. * 3 30 * * /path/to/script.sh
D. 30 03 * * /path/to/script.sh

Solution

  1. Step 1: Understand cron time fields order

    The order is: minute hour day-of-month month day-of-week. So 30 3 means 3:30 AM.
  2. Step 2: Check each option

    30 3 * * * /path/to/script.sh correctly uses '30 3' for 3:30 AM daily. 3 30 * * * /path/to/script.sh swaps minute and hour. * 3 30 * * /path/to/script.sh misplaces day and minute. 30 03 * * /path/to/script.sh misses a field.
  3. Final Answer:

    30 3 * * * /path/to/script.sh -> Option A
  4. Quick Check:

    Minute Hour Day Month Weekday = 30 3 * * * [OK]
Hint: Minute comes before hour in cron syntax [OK]
Common Mistakes:
  • Swapping hour and minute fields
  • Missing one of the five time fields
  • Using leading zeros incorrectly
3. After adding this line in crontab -e:
0 0 * * 0 /home/user/backup.sh
What will happen?
medium
A. The script runs every day at midnight.
B. The script runs every Sunday at midnight.
C. The script runs every hour on Sundays.
D. The script runs once a month at midnight.

Solution

  1. Step 1: Decode the cron schedule

    Fields: minute=0, hour=0, day-of-month=*, month=*, day-of-week=0. Day-of-week 0 means Sunday.
  2. Step 2: Interpret the schedule

    The script runs at 00:00 (midnight) on every Sunday.
  3. Final Answer:

    The script runs every Sunday at midnight. -> Option B
  4. Quick Check:

    0 0 * * 0 = Sunday midnight [OK]
Hint: Day-of-week 0 means Sunday in cron [OK]
Common Mistakes:
  • Thinking it runs daily instead of weekly
  • Confusing day-of-month with day-of-week
  • Assuming 0 means Monday
4. You added this line in crontab -e:
60 12 * * * /home/user/script.sh
Why does this cron job not run?
medium
A. Script path must be absolute, this is relative.
B. Hour 12 is invalid; hours range 0-11.
C. Minute value 60 is invalid; minutes range 0-59.
D. Missing day-of-week field causes error.

Solution

  1. Step 1: Check the minute field validity

    Minutes must be between 0 and 59. 60 is invalid and causes cron to ignore the job.
  2. Step 2: Verify other fields

    Hour 12 is valid (means noon). Day-of-week is optional. Script path is absolute.
  3. Final Answer:

    Minute value 60 is invalid; minutes range 0-59. -> Option C
  4. Quick Check:

    Minute must be 0-59, 60 is invalid [OK]
Hint: Minutes max at 59, not 60 [OK]
Common Mistakes:
  • Using 60 as a minute value
  • Confusing 12-hour clock with 24-hour
  • Thinking day-of-week is mandatory
5. You want to run a backup script every weekday at 11:45 PM using crontab -e. Which line correctly schedules this?
hard
A. 45 23 * * 1-5 /home/user/backup.sh
B. 23 45 * * 1-5 /home/user/backup.sh
C. 45 23 * * 0-6 /home/user/backup.sh
D. 45 11 * * 1-5 /home/user/backup.sh

Solution

  1. Step 1: Understand the time and days needed

    11:45 PM is hour 23, minute 45. Weekdays are Monday(1) to Friday(5).
  2. Step 2: Check each option's correctness

    45 23 * * 1-5 /home/user/backup.sh uses '45 23' for 11:45 PM and '1-5' for weekdays correctly. 23 45 * * 1-5 /home/user/backup.sh swaps minute and hour. 45 23 * * 0-6 /home/user/backup.sh runs every day. 45 11 * * 1-5 /home/user/backup.sh uses hour 11 (11 AM) instead of 23.
  3. Final Answer:

    45 23 * * 1-5 /home/user/backup.sh -> Option A
  4. Quick Check:

    Minute Hour Days 1-5 = 45 23 Mon-Fri [OK]
Hint: Hour 23 = 11 PM; weekdays 1-5 [OK]
Common Mistakes:
  • Swapping hour and minute fields
  • Using 11 instead of 23 for PM
  • Using 0-6 instead of 1-5 for weekdays
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard