在 Linux 中备份用户帐户

在 Linux 中备份用户帐户

以下是我使用计划备份用户帐户的步骤:

`sudo crontab -e.

0 0 * * * sudo tar -cpzf /backupfolder/user1_backup-$(date +\%Y--\%m-\%d).tar.gz /home/students/user1

0 0 * * * sudo tar -cpzf /backupfolder/user2_backup-$(date +\%Y--\%m-\%d).tar.gz /home/students/user2`

以下是我的问题:

  1. 如果我执行上述步骤,当我备份用户的主目录(如上所示)时,我是否实际上也备份了用户的系统配置文件?

  2. 在我的 crontab 命令中,我是否可以用一行命令备份所有用户(比如 user1 到 user10),并自动将用户名或用户 ID 附加到备份文件名?我设法将日期格式附加到备份文件名,但不确定是否可以对用户名执行相同的操作。

  3. 如何存档所有用户帐户并删除用户帐户?

感谢您的指导和建议!

答案1

如果我执行上述步骤,当我备份用户的主目录(如上所示)时,我是否实际上也备份了用户的系统配置文件?

系统和用户配置文件是不同的。普通用户帐户应该将重要文件放在其各自的主目录中,或主目录下的任何位置。在普通 Linux 系统上,只有用户主目录之外的几个其他位置(特别是 /tmp 和相关位置)可供普通用户写入。系统配置文件通常保存在 /etc 中,普通用户无法写入。正如指出的那样托马斯·温布伦纳在评论中,crontab 和邮件假脱机是可能保留在用户主目录之外但仍值得备份的东西。这在很大程度上取决于系统的用途、如何将其用于这些目的以及如何配置它。

在我的 crontab 命令中,我是否可以用一行命令备份所有用户(比如 user1 到 user10),并自动将用户名或用户 ID 附加到备份文件名?我设法将日期格式附加到备份文件名,但不确定是否可以对用户名执行相同的操作。

编写一个脚本,按照您想要的方式备份单个主目录(目标文件命名、压缩、加密等)。我们将该脚本命名为 /usr/local/bin/backup.sh。使其接受两个参数:要备份的目录和备份文件的基本名称。

然后从循环中调用它:

for dir in /home/students/*/; do /usr/local/bin/backup.sh "$dir" $(basename "$dir"); done

这假设所有用户的主目录都直接位于 /home/students 下,但应该很容易适应您的任何特定设置。该脚本最终将被调用为backup.sh /home/students/userN/ userN

如何存档所有用户帐户并删除用户帐户?

删除或存档文件,然后从 /etc/passwd、/etc/shadow 和可能的 /etc/group 中删除用户帐户条目。分别使用vipwvipw -svigr以适当的锁定编辑这些文件。设置$VISUAL为您最喜欢的编辑器的命令(例如VISUAL="nano -w")。

相关内容