Removing an obsolete cron job stops a scheduled command before it keeps running after the script, task, or maintenance window is no longer needed. That prevents repeat backups, alerts, reports, or cleanup tasks from continuing unnoticed after the underlying job should have ended.

On Linux, per-user cron jobs are stored in account-specific crontabs that the crontab command lists and edits, while system-wide jobs are defined in /etc/crontab or files under /etc/cron.d. Listing the current schedule first makes it clear which entry belongs to the current account before anything is deleted.

Removing one line is different from removing the entire crontab. Jobs defined in /etc/crontab or files under /etc/cron.d use a different file format with a username field, so they should be edited in the owning file instead of through crontab -e. Because this is a destructive change, confirm the account, schedule, and command before saving the updated file.

Steps to remove a cron job in Linux:

  1. List the current account's crontab and identify the exact job line that should be removed.
    $ crontab -l
    MAILTO=""
    0 5 * * * /usr/local/bin/backup.sh
    15 * * * * /usr/local/bin/rotate-logs.sh

    crontab -l shows only the crontab for the current user. Use sudo crontab -u root -l or sudo crontab -u username -l when the scheduled job runs as a different user.

    If crontab -l prints no crontab for username, the job is either stored in a different account or defined in a system cron file such as /etc/crontab or /etc/cron.d.

  2. Open the same crontab in the editor.
    $ crontab -e

    The editor comes from $VISUAL or $EDITOR. Use sudo crontab -u username -e when the job runs under another account such as root.

  3. Delete only the target schedule line, keep the remaining jobs and environment lines intact, then save and exit.
    MAILTO=""
    15 * * * * /usr/local/bin/rotate-logs.sh

    Do not use crontab -r here. That option removes the entire user crontab instead of one job.

    If the job is defined in /etc/crontab or a file under /etc/cron.d, edit the owning file with sudoedit and remove the matching schedule line there instead.

  4. List the crontab again and confirm the removed job no longer appears.
    $ crontab -l
    MAILTO=""
    15 * * * * /usr/local/bin/rotate-logs.sh

    This is the decisive success check. After the edited file is saved, the updated crontab is installed automatically, so a separate service restart is not normally required.