Skip to content

Practice Exercise: Backing Up and Compressing Data

Objectives

  • Learn how to create backups of files and directories.
  • Understand the basics of data compression.
  • Gain hands-on experience using Linux commands for backup and compression.

Scenario

As a Linux user, you understand the importance of data backup and compression to ensure the safety and efficient storage of your files. This exercise will guide you through the process of creating backups and compressing data using essential Linux commands.

Tasks

Task 1: Creating a Backup

  • Choose a directory on your system that contains important files you'd like to back up.
  • Use the tar command to create a backup of the entire directory and its contents.
  • Name the backup file with a .tar extension (e.g., mybackup.tar).
    [intern@intern-a1t-inf-lnx1 ~]$ tar -cvzf mybackup.tar different_files
    a different_files
    a different_files/file.txt
    a different_files/soft_link
    a different_files/file_dir
    a different_files/cp
    
  • -c create new archive
  • -v for verbose
  • -z for compress with gzip
  • -f for the file you want to save your backup to

Task 2: Verifying the Backup

  • Use the ls or file command to list the contents of the directory where you created the backup.
  • Verify that the backup file (mybackup.tar) is present in the directory.
    [intern@intern-a1t-inf-lnx1 ~]$ file mybackup.tar
    mybackup.tar: gzip compressed data, last modified: Mon Sep 18 04:43:40 2023, from Unix, original size modulo 2^32 156672
    

Task 3: Compressing Data

  • Use the gzip command to compress the backup file (mybackup.tar).
  • Check if a compressed file with a .gz extension (e.g., mybackup.tar.gz) is created.
    [intern@intern-a1t-inf-lnx1 ~]$ gzip mybackup.tar
    [intern@intern-a1t-inf-lnx1 ~]$ file mybackup.tar.gz
    mybackup.tar.gz: gzip compressed data, was "mybackup.tar", last modified: Mon Sep 18 04:47:23 2023, from Unix, original size modulo 2^32 23112
    

Task 4: Decompressing Data

  • Decompress the compressed backup file (mybackup.tar.gz) using the gunzip command.
  • Ensure that you have successfully restored the original backup file (mybackup.tar).
    [intern@intern-a1t-inf-lnx1 ~]$ gunzip mybackup.tar.gz
    [intern@intern-a1t-inf-lnx1 ~]$ file mybackup.tar
    mybackup.tar: gzip compressed data, last modified: Mon Sep 18 04:47:23 2023, from Unix, original size modulo 2^32 156672
    

Task 5: Creating Incremental Backups

  • Make changes or additions to the files in the original directory.
  • Create an incremental backup of only the changed or new files using the tar command.
  • Name the incremental backup file with a meaningful name (e.g., incremental_backup.tar.gz).
  • For this task let's create a new directory and create multiple files
    [intern@intern-a1t-inf-lnx1 ~]$ mkdir incremental_backup
    [intern@intern-a1t-inf-lnx1 ~]$ touch incremental_backup/file{1..3}.txt
    [intern@intern-a1t-inf-lnx1 ~]$ ls incremental_backup
    file1.txt file2.txt file3.txt
    
  • Let's create the initial full backup
    [intern@intern-a1t-inf-lnx1 ~]$ tar -cvzf incremental_backup.tar.gz incremental_backup
    a incremental_backup
    a incremental_backup/file2.txt
    a incremental_backup/file3.txt
    a incremental_backup/file1.txt
    
  • Now let's add a new file to the original directory incremental_backup and make the first incremental backup
    [intern@intern-a1t-inf-lnx1 ~]$ touch incremental_backup/file4.txt
    [intern@intern-a1t-inf-lnx1 ~]$ ls incremental_backup
    file1.txt file2.txt file3.txt file4.txt
    [intern@intern-a1t-inf-lnx1 ~]$ tar -czvf incremental_backup1.tar.gz --listed-incremental=incremental.snar incremental_backup
    tar: incremental_backup: Directory is new
    incremental_backup/
    incremental_backup/file1.txt
    incremental_backup/file2.txt
    incremental_backup/file3.txt
    incremental_backup/file4.txt
    
  • Let's add a new file again and create another incremental backup
    [intern@intern-a1t-inf-lnx1 ~]$ touch incremental_backup/file4.txt
    [intern@intern-a1t-inf-lnx1 ~]$ ls incremental_backup
    file1.txt  file2.txt  file3.txt  file4.txt  file5.txt
    [intern@intern-a1t-inf-lnx1 ~]$ tar -czvf incremental_backup2.tar.gz --listed-incremental=incremental.snar incremental_backup
    incremental_backup/
    incremental_backup/file5.txt
    

Task 6: Cleaning Up

  • Delete your original directory and restore
    [intern@intern-a1t-inf-lnx1 ~]$ rm -r incremental_backup
    [intern@intern-a1t-inf-lnx1 ~]$ ls incremental_backup
    ls: cannot access 'incremental_backup': No such file or directory
    
  • Extract the initial full backup
    [intern@intern-a1t-inf-lnx1 ~]$ mkdir incremental_backup
    [intern@intern-a1t-inf-lnx1 ~]$ tar -xvzf incremental_backup.tar.gz incremental_backup/
    incremental_backup/
    incremental_backup/file1.txt
    incremental_backup/file3.txt
    incremental_backup/file2.txt
    
  • Extract the incremental backup in order
    [intern@intern-a1t-inf-lnx1 ~]$ tar -xvzf incremental_backup1.tar.gz incremental_backup/
    incremental_backup/
    incremental_backup/file1.txt
    incremental_backup/file2.txt
    incremental_backup/file3.txt
    incremental_backup/file4.txt
    [intern@intern-a1t-inf-lnx1 ~]$ tar -xvzf incremental_backup2.tar.gz incremental_backup/
    incremental_backup/
    incremental_backup/file5.txt
    [intern@intern-a1t-inf-lnx1 ~]$ ls incremental_backup
    file1.txt  file2.txt  file3.txt  file4.txt  file5.txt
    

Conclusion

This practice exercise has allowed you to practice creating backups of files and directories, compressing data, and performing basic backup maintenance tasks using Linux commands like tar, gzip, and gunzip. Understanding these concepts is essential for safeguarding your data and efficiently managing storage on a Linux system.