fstab 配置:如何在启动时对外部硬盘运行自动 fsck 扫描并自动备份到外部硬盘

fstab 配置:如何在启动时对外部硬盘运行自动 fsck 扫描并自动备份到外部硬盘

我有一个外部硬盘(ext4 类型),我每天通过 anacron 脚本将我的 /home 文件夹和 postgresql 数据库备份到该硬盘上。我遇到了两个问题:

1.) 当计算机(Ubuntu 18.04)启动时,我需要输入我的登录密码。然后备份命令将按预期运行。我想要的是命令在启动时自动执行,而无需我在 anacron 开始执行脚本之前登录。相关命令是:

rsync -acu --delete --exclude-from='/home/chh1/rsync_exclude.txt' /home/ /media/chh1/f86f92f7-bcb4-4b8e-8a64-8a210606d422/home_backup/
pg_dump -h localhost -p 5432 -U postgres -d crewdb -w -C -F p -b -f /media/chh1/f86f92f7-bcb4-4b8e-8a64-8a210606d422/home_backup/chh1/Dropbox/postgres_backup/crewdb.backup.sql

请注意,以下命令也是脚本的一部分,它在备份到同一台计算机时无需提供登录详细信息即可执行:

pg_dump -h localhost -p 5432 -U postgres -d crewdb -w -C -F p -b -f /home/chh1/Dropbox/postgres_backup/crewdb.backup.sql

2.) 由于磁盘错误,大约 50 次成功备份后,备份无法正常工作。此问题在 fsck 扫描后得到纠正。为了在每 15 次启动后自动执行 fsck 扫描,我执行了

sudo tune2fs -c 15 /dev/sdb1

Kamil Maciorowski(超级用户)告诉我,如果 fstab 没有经过相应编辑,fsck 将无法运行。这让我想到,这两个问题可能都可以通过 fstab 条目解决。以下是我认为可能的解决方案的示例,但我只想与知情人士再确认一下(还有第 12 行 fstab 条目的语法,可以吗?)。此外,我愿意听取任何其他可能指向正确方向的想法:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/mapper/ubuntu--vg-root /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/sda1 during installation
UUID=A3DA-B118  /boot/efi       vfat    umask=0077      0       1
/dev/mapper/ubuntu--vg-swap_1 none            swap    sw              0       0
/dev/sdb1       /media/chh1/f86f92f7-bcb4-4b8e-8a64-8a210606d422        ext4    rw,auto   0       2

答案1

我所做的似乎已经解决了上述两个问题,即在 /etc/fstab 中添加以下条目:

UUID=f86f92f7-bcb4-4b8e-8a64-8a210606d422       /media/chh1/f86f92f7-bcb4-4b8e-8a64-8a210606d422        ext4    sync,rw,suid,auto,user        0       2

UUID=f86f92f7-bcb4-4b8e-8a64-8a210606d422通过运行我发现 sudo blkid /dev/sdb1 ,以前的备份过程平均需要大约 8 分钟。最后一次在 fstab 中使用这个条目的备份花费的时间几乎是原来的两倍,但没有返回任何错误消息,备份已完成并且看起来一切正常。所以我将尝试找出为什么需要这么长时间。

相关内容