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
orfile
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 thegunzip
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.