Bird
Raised Fist0
Linux CLIscripting~5 mins

Backup strategies in Linux CLI - Commands & Configuration

Choose your learning style10 modes available
Introduction
Backing up files means making copies of important data so you don't lose it if something goes wrong. Backup strategies help you decide what to copy, when, and where to keep those copies safely.
When you want to save your work files regularly to avoid losing them after a computer crash
When you need to keep a copy of your website files before making changes
When you want to archive old project files to free up space but still keep them safe
When you want to copy your photos to an external drive for safekeeping
When you want to automate daily backups of your documents folder
Commands
This command creates a compressed archive of the /home/username folder and names it with the current date. It helps you save all your home files in one backup file.
Terminal
tar -czf backup-home-$(date +%Y-%m-%d).tar.gz /home/username
Expected OutputExpected
No output (command runs silently)
→
-c - Create a new archive
→
-z - Compress the archive using gzip
→
-f - Specify the filename of the archive
This command copies all files from /home/username to /mnt/backup/username, syncing changes and deleting files in the backup that no longer exist in the source. It keeps your backup folder up to date.
Terminal
rsync -av --delete /home/username/ /mnt/backup/username/
Expected OutputExpected
sending incremental file list ./ file1.txt file2.txt sent 12345 bytes received 678 bytes total size 23456
→
-a - Archive mode to copy files recursively and preserve attributes
→
-v - Show detailed output of the copying process
→
--delete - Delete files in the destination that are not in the source
This command lists your current scheduled tasks. You use it to check if your backup jobs are set to run automatically.
Terminal
crontab -l
Expected OutputExpected
0 2 * * * tar -czf /mnt/backup/backup-home-$(date +\%Y-\%m-\%d).tar.gz /home/username
This command opens the cron editor where you can add or change scheduled backup commands to run automatically at set times.
Terminal
crontab -e
Expected OutputExpected
No output (command runs silently)
Key Concept

If you remember nothing else from backup strategies, remember: always keep a recent copy of your important files in a separate location to protect against data loss.

Common Mistakes
Not using the --delete flag with rsync for backups
Old files deleted from the source remain in the backup, causing confusion and wasted space
Use rsync with the --delete flag to keep the backup folder synchronized exactly with the source
Running tar without compression
Backup files become very large and use unnecessary disk space
Use the -z flag with tar to compress the backup archive and save space
Not scheduling backups with cron
Backups may be forgotten and not done regularly, risking data loss
Use cron to automate backups at regular intervals without manual effort
Summary
Use tar with compression to create backup archives of important folders.
Use rsync with archive and delete flags to keep backup folders synchronized.
Automate backups by scheduling commands with cron to run regularly.

Practice

(1/5)
1. Which of the following best describes the main purpose of a backup in Linux?
easy
A. To delete old files to free up space
B. To install new software updates automatically
C. To speed up the computer by cleaning temporary files
D. To save copies of important files in a safe place

Solution

  1. Step 1: Understand what a backup is

    A backup is a copy of important data saved separately to protect against loss.
  2. Step 2: Match the description to the options

    Only To save copies of important files in a safe place describes saving copies in a safe place, which is the purpose of backups.
  3. Final Answer:

    To save copies of important files in a safe place -> Option D
  4. Quick Check:

    Backup = Save copies safely [OK]
Hint: Backups always mean saving copies, not deleting files [OK]
Common Mistakes:
  • Confusing backup with deleting files
  • Thinking backup speeds up the system
  • Mixing backup with software updates
2. Which command syntax correctly copies a directory and its contents to a backup folder?
easy
A. cp -r /home/user/docs /backup/docs
B. cp /home/user/docs /backup/docs
C. cp -d /home/user/docs /backup/docs
D. cp -x /home/user/docs /backup/docs

Solution

  1. Step 1: Identify the correct option to copy directories recursively

    The -r option in cp copies directories and their contents recursively.
  2. Step 2: Check other options for correctness

    The plain cp lacks -r, so it won't copy directories properly. The options with -d and -x use invalid or unrelated flags.
  3. Final Answer:

    cp -r /home/user/docs /backup/docs -> Option A
  4. Quick Check:

    Copy directory = cp -r [OK]
Hint: Use cp -r to copy folders with all files inside [OK]
Common Mistakes:
  • Forgetting the -r flag for directories
  • Using wrong flags like -d or -x
  • Assuming cp copies folders without options
3. What will be the output of this command if the source directory has files and the destination is empty?
rsync -av /home/user/data/ /backup/data/
medium
A. Only lists files without copying them
B. Copies all files and folders from /home/user/data to /backup/data preserving attributes
C. Deletes all files in /backup/data and leaves it empty
D. Shows an error because /backup/data does not exist

Solution

  1. Step 1: Understand rsync options -a and -v

    The -a option means archive mode (copy recursively and preserve attributes), and -v means verbose (show progress).
  2. Step 2: Analyze command behavior

    Since /backup/data exists and is empty, rsync copies all files and folders from source to destination preserving attributes.
  3. Final Answer:

    Copies all files and folders from /home/user/data to /backup/data preserving attributes -> Option B
  4. Quick Check:

    rsync -av copies files with details [OK]
Hint: rsync -av copies and shows details, no deletion by default [OK]
Common Mistakes:
  • Thinking rsync deletes files by default
  • Confusing verbose with dry-run
  • Assuming error if destination exists
4. You wrote this script to backup a folder:
#!/bin/bash
cp -r /home/user/docs /backup/docs
rm -r /home/user/docs/*

What is the main problem with this backup strategy?
medium
A. It deletes original files after copying, risking data loss
B. It does not copy hidden files
C. It uses the wrong command to copy files
D. It will fail because /backup/docs does not exist

Solution

  1. Step 1: Analyze the script commands

    The script copies /home/user/docs to /backup/docs, then deletes all files inside /home/user/docs.
  2. Step 2: Identify risk in deleting original files

    Deleting original files after copying is risky if the copy failed or is incomplete, causing data loss.
  3. Final Answer:

    It deletes original files after copying, risking data loss -> Option A
  4. Quick Check:

    Deleting originals after backup = risk [OK]
Hint: Never delete originals immediately after backup without verification [OK]
Common Mistakes:
  • Assuming cp misses hidden files (it copies them)
  • Thinking /backup/docs must exist (cp creates it)
  • Ignoring risk of deleting original data
5. You want to automate daily backups of /home/user/projects to /mnt/backup using tar. Which command correctly creates a compressed backup file with the current date in its name?
hard
A. tar -czf /home/user/projects /mnt/backup/projects-$(date +%F).tar.gz
B. tar -cf /mnt/backup/projects.tar.gz /home/user/projects
C. tar -czf /mnt/backup/projects-$(date +%F).tar.gz /home/user/projects
D. tar -xzf /mnt/backup/projects-$(date +%F).tar.gz /home/user/projects

Solution

  1. Step 1: Understand tar options for creating compressed archives

    -c creates an archive, -z compresses with gzip, and -f specifies the output file.
  2. Step 2: Check command correctness

    tar -czf /mnt/backup/projects-$(date +%F).tar.gz /home/user/projects correctly creates a gzip compressed archive named with the current date in /mnt/backup from /home/user/projects.
  3. Final Answer:

    tar -czf /mnt/backup/projects-$(date +%F).tar.gz /home/user/projects -> Option C
  4. Quick Check:

    tar -czf + date = compressed dated backup [OK]
Hint: Use tar -czf with $(date +%F) for dated compressed backups [OK]
Common Mistakes:
  • Using -xzf which extracts instead of creates
  • Swapping source and destination paths
  • Omitting compression flag -z
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