我有一个外部硬盘驱动器(类型 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
我所做的似乎解决了上述两个问题的做法是在 /etc/fstab 中添加以下条目:
我
UUID=f86f92f7-bcb4-4b8e-8a64-8a210606d422
通过运行发现sudo blkid /dev/sdb1
我可能会提到以前的备份过程平均大约 8 分钟。在 fstab 中使用此条目进行的最后一次备份花费了几乎两倍的时间,但没有返回任何错误消息,并且备份已完成并且看起来还不错。因此,我将尝试找出为什么需要这么长时间。