Home > Article > Operation and Maintenance > How to use tar command to back up Linux cloud server
Execute the following command to back up the entire file system:
sudo /usr/bin/tar -czpvf /home/zhaomu/backup/linux_backup.tar.gz /
The parameters are described as follows:
-c: indicates archiving.
-z: Use gzip format for backup. gzip's backup speed is faster, but the backup files generated by other methods are also larger.
-p: Keep the file permissions while backing up, so that permission problems will not occur during recovery.
-v: Display details of the backup process.
-f: Specify the backup directory and file name.
/: Indicates backing up the entire file system.
1. Exclude files that do not need to be backed up
The above backup command is not the optimal solution because there are a large number of files in the entire file system Files that do not need to be backed up include system files, temporary files, historical backup files, etc. Therefore we need to exclude these files.
sudo /usr/bin/tar --exclude-from=/home/zhaomu/exclude.txt -czpvf /home/zhaomu/backup/linux_backup.tar.gz /
The --exclude-from directive is used here to define the path to exclude files. The content of a typical excluded file is as follows:
/home/zhaomu/backup/* /tmp/* /proc/* /dev/* /sys/* /run/* /var/tmp/* /var/run/* /var/lock/*
First of all, the files in the /home/zhaomu/backup directory need to be excluded, otherwise the previously backed up data will be backed up repeatedly, causing the backup file to become larger and larger. Secondly, in the Linux system, tmp, proc, dev, sys, and run are all dynamically created directories and do not need to be backed up, but these directory structures need to be preserved, so we exclude files in these directories, but not the entire directory.
2. Add a date to the file name
By adding a date to the file name, you can distinguish backups created at different times and establish a backup chain mechanism.
sudo /usr/bin/tar --exclude-from=/home/zhaomu/exclude.txt -czpvf /home/zhaomu/backup/linux_backup-$(date +%F-%H-%M).tar.gz /
The parameter $(date %F-%H-%M) represents the current date, current hour and current minute, such as: linux_backup-2020-03-02-15-22.tar.gz
3. Use xz compression algorithm
We replace the -z command with the -J command, and the file extension is also changed from tar.gz to tar.xz. The xz compression algorithm is slower than the gzip compression algorithm, but the compression ratio is higher, so the backup files created are smaller.
sudo /usr/bin/tar --exclude-from=/home/zhaomu/exclude.txt -cJpvf /home/zhaomu/backup/linux_backup-$(date +%F-%H-%M).tar.xz /
We can integrate the above commands into a script for execution:
vi /home/zhaomu/bin/linux_backup.sh
The content of the script is as follows:
#!bin/sh _tarfile=/home/zhaomu/backup/linux_backup-$(date +%F-%H-%M).tar.xz sudo /usr/bin/tar --exclude-from=/home/zhaomu/exclude.txt -cJpvf $ /
Give the script execution permission:
sudo chmod +x /home/zhaomu/bin/linux_backup.sh
Run the script to start backup:
sh /home/zhaomu/bin/linux_backup.sh
The above is the detailed content of How to use tar command to back up Linux cloud server. For more information, please follow other related articles on the PHP Chinese website!