【51CTO.com快译】备份是防止数据丢失的最后一道防线,它提供了恢复原始数据的一种方法。您可以使用可移动介质(比如外部硬驱和USB闪存盘)、共享的网络文件夹或远程主机来备份数据。自动备份重要文件、无需记得这么做很容易,也很重要。
本文介绍了将可移动介质连到Linux机器后如何将数据自动备份到可移动介质上。我们将使用外部磁盘来测试。这篇基本指南帮助您开始使用udev用于实际解决方案。
出于本文的目的,我们需要装有以下组件的现代Linux系统:
如何为可移动介质配置Udev规则?
Udev是一种设备管理器,可让您定义一些规则,设备添加到运行中的系统或从运行中的系统中删除后,这些规则可以触发程序或脚本的执行,作为设备事件处理的一部分。我们可以利用该功能,将可移动介质添加到运行中的系统后执行备份脚本。
为设备事件处理配置实际规则之前,我们需要为udev提供将用于备份的可移动介质的一些属性。将外部磁盘连接到运行中的系统,然后运行以下lsusb命令以识别其厂商和产品ID。
为了进行测试,我们将使用如图所示的1TB外部硬盘。
- $ lsusb
图1. 查找可移动介质的设备厂商ID
从以上命令的输出中可以看出,设备厂商ID是125f,我们将在udev规则中指定该ID,如下所述。
首先从系统中删除连接的介质,并在目录/etc/udev/rules.d/下新建一个名为10.autobackup.rules的udev规则文件。
文件名中的10指定规则执行的顺序。解析规则的顺序很重要;您应该始终在创建默认规则之前创建要解析的自定义规则。
- $ sudo vim /etc/udev/rules.d/10.autobackup.rules
然后在其中添加以下规则:
- SUBSYSTEM=="block", ACTION=="add", ATTRS{idVendor}=="125f" SYMLINK+="external%n", RUN+="/bin/autobackup.sh"
不妨简要说明上述规则:
保存文件并关闭。
创建自动备份脚本
现在创建一个自动备份脚本,该脚本将把文件自动备份到连到系统后的可移动USB。
- $ sudo vim /bin/autobackup.sh
现在,复制并粘贴以下脚本,确保替换脚本中BACKUP_SOURCE、ACKUP_DEVICE和MOUNT_POINT的值。
- #!/usr/bin/bash
- BACKUP_SOURCE="/home/admin/important"
- BACKUP_DEVICE="/dev/external1"
- MOUNT_POINT="/mnt/external"
- #check if mount point directory exists, if not create it
- if [ ! -d “MOUNT_POINT” ] ; then
- /bin/mkdir “$MOUNT_POINT”;
- fi
- /bin/mount -t auto “$BACKUP_DEVICE” “$MOUNT_POINT”
- #run a differential backup of files
- /usr/bin/rsync -auz "$MOUNT_POINT" "$BACKUP_SOURCE" && /bin/umount "$BACKUP_DEVICE"
- exit
然后使用以下命令使脚本可执行。
- $ sudo chmod + x /bin/autobackup.sh
接下来,使用以下命令重新加载udev规则。
- $ udevadm control –reload
下次连接外部硬盘或为系统配置的任何设备后,应会将指定位置的所有文档自动备份到该设备上。
注意:这个方法多有效可能受到可移动介质上的文件系统和你编写的udev规则的影响,尤其是捕获设备属性时。
原文标题:How to Auto Backup Files to USB Media When Connected,作者:Aaron Kili
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】
【51CTO.com原创稿件】在本系列的前面三期中,我和大家一起讨论了去年防疫期间,...
全球排名前五的数据中心房地产投资商的总市值接近1000亿美元,而全球十大数据中...
液体冷却曾主要用于大型机和超级计算机,现在开始可用于企业数据中心。我们看到...
香港服务器 具有免备案,网络覆盖面广,国内访问快,应用灵活等特点。很多人喜欢...
Redis Sentinel 介绍 Redis Sentinel:哨兵,放哨,看中文名字就知道它是一种 Re...
Redis 作为内存数据库,拥有非常高的性能,单个实例的 QPS 能够达到 10W 左右。 ...
1.缓存概述 在很久很久以前人类和洪水作斗争的过程中,水库发挥了至关重要的作用...
1.曾经爱过你的人,前世一定和你有缘,不要语言虐待。如果他今生真的负你了,那...
作为一名资深(fu xiu)的程序猿来说,一直不想向IDEA低头可能是我对MyEclipse最大...
数据变得越来越多、越来越大,存储作为一种基础功能正发挥着越来越重要的作用。...