本文介绍在Linux操作系统中使用Tar命令备份用户主目录的方法:备份特定用户的主目录、使用Shell脚本备份单个用户/所有用户的主目录。tar是本地或手动备份解决方案的最佳命令之一,它不仅限于用户的主目录,还可以备份任何目录,可参考使用tar命令提取(或解压缩)tar.bz2和tbz2文件的方法。
tar命令的通用语法
# tar -zcvpf /[Backup_File_Location]/[Backup_Filename] /[User's_Home_Directory_Location]
注:
z:使用“gzip”压缩备份文件以使其较小。
c:创建一个新的备份存档。
v:详细列出要处理的文件。
p:保留放在存档中的文件的权限,以便以后还原。
f:使用存档文件或设备ARCHIVE。
如何备份特定用户的主目录
使用以下命令备份特定用户的主目录,在此示例中,我们将备份ywnz用户的主目录,并且输出文件将保存在/backup目录中:
# tar -zcvpf /backup/ywnz-backup-$(date +%d-%m-%Y).tar.gz /home/ywnz
可以使用ls命令验证生成的备份文件,如下所示:
# ls -lh /backup/
total 24K
-rw-r--r--. 1 root root 23K Feb 18 00:30 ywnz-18-02-2020.tar.gz
由于某些原因,如果想排除某些文件夹,请使用以下格式,以下示例将排除整个演示目录,并存档其余文件和文件夹:
# tar --exclude=’/home/ywnz/demo’ -zcvpf /backup/ywnz-backup-$(date +%d-%m-%Y).tar.gz /home/ywnz
如果想排除某些特征码文件或文件组,则采用类似的方法,然后使用以下格式,以下示例将从演示目录中排除.mp3和.avi文件,并将其余文件存档:
# tar --exclude=’/home/ywnz/demo’ -zcvpf /backup/ywnz-backup-$(date +%d-%m-%Y).tar.gz /home/ywnz
如何使用Shell脚本备份单个用户的主目录
此Shell脚本可以备份给定用户的主目录,请在文件中添加以下shell脚本:
# vi /opt/shell-scripts/home-dir-backup.sh
#!/bin/bash
DATE=$(date +%d-%m-%Y)
BACKUP_DIR="/backup"
#To backup ywnz's home directory
tar -zcvpf $BACKUP_DIR/ywnz-$DATE.tar.gz /home/ywnz
#To delete files older than 10 days
find $BACKUP_DIR/* -mtime +10 -exec rm {} \;
为home-dir-backup.sh文件设置可执行权限:
# chmod +x home-dir-backup.sh
最后运行脚本以实现目的:
# sh home-dir-backup.sh
可以使用ls命令验证生成的备份文件,如下所示:
# ls -lh /backup/
total 24K
-rw-r--r--. 1 root root 23K Feb 18 00:30 ywnz-18-02-2020.tar.gz
如何使用Shell脚本备份所有用户的主目录
该shell脚本允许备份所有用户的主目录,确保已将用户列表添加到user-list.txt文件中,每个用户应位于单独的行中:
# vi /opt/user-list.txt
ywnz
sudha
u1
u2
u3
u4
u5
user1
user2
创建下面的小shell脚本以实现目的:
# vi /opt/shell-scripts/home-dir-backup-1.sh
#!/bin/bash
DATE=$(date +%d-%m-%Y)
BACKUP_DIR="/backup"
#To create a new directory in the backup directory location
mkdir -p $BACKUP_DIR/$DATE
#To backup user's home directory
for user in `more /opt/user-list.txt`
do
tar -zcvpf $BACKUP_DIR/$DATE/$user-$DATE.tar.gz /home/$user
done
#To delete files older than 10 days
find $BACKUP_DIR/* -mtime +10 -exec rm {} \;
为home-dir-backup-1.sh文件设置可执行权限:
# chmod +x home-dir-backup-1.sh
最后运行脚本以实现目的:
# sh home-dir-backup-1.sh
可以使用ls命令验证生成的备份文件,如下所示:
# ls -lh /backup/18-02-2020/
total 56K
-rw-r--r--. 1 root root 23K Feb 18 00:46 ywnz-18-02-2020.tar.gz
-rw-r--r--. 1 root root 500 Feb 18 00:46 sudha-18-02-2020.tar.gz
-rw-r--r--. 1 root root 490 Feb 18 00:46 u1-18-02-2020.tar.gz
-rw-r--r--. 1 root root 489 Feb 18 00:46 u2-18-02-2020.tar.gz
-rw-r--r--. 1 root root 490 Feb 18 00:46 u3-18-02-2020.tar.gz
-rw-r--r--. 1 root root 491 Feb 18 00:46 u4-18-02-2020.tar.gz
-rw-r--r--. 1 root root 489 Feb 18 00:46 u5-18-02-2020.tar.gz
-rw-r--r--. 1 root root 582 Feb 18 00:46 user1-18-02-2020.tar.gz
-rw-r--r--. 1 root root 582 Feb 18 00:46 user2-18-02-2020.tar.gz
注:可以使用Cronjob计划执行,以下cronjobs计划每天10AM、11AM运行:
# crontab -e
0 10 * * * /opt/shell-scripts/home-dir-backup.sh
0 11 * * * /opt/shell-scripts/home-dir-backup-1.sh
相关主题