以下是我使用计划备份用户帐户的步骤:
`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`
以下是我的问题:
如果我执行上述步骤,当我备份用户的主目录(如上所示)时,我是否实际上也备份了用户的系统配置文件?
在我的 crontab 命令中,我是否可以用一行命令备份所有用户(比如 user1 到 user10),并自动将用户名或用户 ID 附加到备份文件名?我设法将日期格式附加到备份文件名,但不确定是否可以对用户名执行相同的操作。
如何存档所有用户帐户并删除用户帐户?
感谢您的指导和建议!
答案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 中删除用户帐户条目。分别使用vipw
、vipw -s
和vigr
以适当的锁定编辑这些文件。设置$VISUAL
为您最喜欢的编辑器的命令(例如VISUAL="nano -w"
)。