如何将文件自动备份到连上的USB介质?

译文
存储 存储软件
本文介绍了将可移动介质连到Linux机器后如何将数据自动备份到可移动介质上。我们将使用外部磁盘来测试。这篇基本指南帮助您开始使用udev用于实际解决方案。

【51CTO.com快译】备份是防止数据丢失的最后一道防线,它提供了恢复原始数据的一种方法。您可以使用可移动介质(比如外部硬驱和USB闪存盘)、共享的网络文件夹或远程主机来备份数据。自动备份重要文件、无需记得这么做很容易,也很重要。

本文介绍了将可移动介质连到Linux机器后如何将数据自动备份到可移动介质上。我们将使用外部磁盘来测试。这篇基本指南帮助您开始使用udev用于实际解决方案。

出于本文的目的,我们需要装有以下组件的现代Linux系统:

  • systemd系统和服务管理器
  • udev设备管理器
  • rsync备份工具

如何为可移动介质配置Udev规则?

Udev是一种设备管理器,可让您定义一些规则,设备添加到运行中的系统或从运行中的系统中删除后,这些规则可以触发程序或脚本的执行,作为设备事件处理的一部分。我们可以利用该功能,将可移动介质添加到运行中的系统后执行备份脚本。

为设备事件处理配置实际规则之前,我们需要为udev提供将用于备份的可移动介质的一些属性。将外部磁盘连接到运行中的系统,然后运行以下lsusb命令以识别其厂商和产品ID。

为了进行测试,我们将使用如图所示的1TB外部硬盘。

  1. $ lsusb 

图1. 查找可移动介质的设备厂商ID

从以上命令的输出中可以看出,设备厂商ID是125f,我们将在udev规则中指定该ID,如下所述。

首先从系统中删除连接的介质,并在目录/etc/udev/rules.d/下新建一个名为10.autobackup.rules的udev规则文件。

文件名中的10指定规则执行的顺序。解析规则的顺序很重要;您应该始终在创建默认规则之前创建要解析的自定义规则。

  1. $ sudo vim /etc/udev/rules.d/10.autobackup.rules 

然后在其中添加以下规则:

  1. SUBSYSTEM=="block", ACTION=="add", ATTRS{idVendor}=="125f" SYMLINK+="external%n", RUN+="/bin/autobackup.sh" 

不妨简要说明上述规则:

  • “ ==”:是进行相等性比较的运算符。
  • “ + =”:是用于将值添加到包含条目列表的键的运算符。
  • SUBSYSTEM:匹配事件设备的子系统。
  • ACTION:匹配事件动作的名称。
  • ATTRS {idVendor}:匹配事件设备的sysfs属性值,即设备厂商ID。
  • RUN:指定作为事件处理的一部分执行的程序或脚本。

保存文件并关闭。

创建自动备份脚本

现在创建一个自动备份脚本,该脚本将把文件自动备份到连到系统后的可移动USB。

  1. $ sudo vim /bin/autobackup.sh 

现在,复制并粘贴以下脚本,确保替换脚本中BACKUP_SOURCE、ACKUP_DEVICE和MOUNT_POINT的值。

  1. #!/usr/bin/bash 
  2. BACKUP_SOURCE="/home/admin/important" 
  3. BACKUP_DEVICE="/dev/external1" 
  4. MOUNT_POINT="/mnt/external" 
  5.  
  6.  
  7. #check if mount point directory exists, if not create it 
  8. if [ ! -d “MOUNT_POINT” ] ; then  
  9.     /bin/mkdir  “$MOUNT_POINT”;  
  10. fi 
  11.  
  12. /bin/mount  -t  auto  “$BACKUP_DEVICE”  “$MOUNT_POINT” 
  13.  
  14. #run a differential backup of files 
  15. /usr/bin/rsync -auz "$MOUNT_POINT" "$BACKUP_SOURCE" && /bin/umount "$BACKUP_DEVICE" 
  16. exit 

然后使用以下命令使脚本可执行。

  1. $ sudo chmod + x /bin/autobackup.sh 

接下来,使用以下命令重新加载udev规则。

  1. $ udevadm control –reload 

下次连接外部硬盘或为系统配置的任何设备后,应会将指定位置的所有文档自动备份到该设备上。

注意:这个方法多有效可能受到可移动介质上的文件系统和你编写的udev规则的影响,尤其是捕获设备属性时。

原文标题:How to Auto Backup Files to USB Media When Connected,作者:Aaron Kili

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

 

责任编辑:赵宁宁 来源: 51CTO
相关推荐

2010-02-25 17:36:38

Linux USB

2011-05-04 09:29:22

2023-06-07 09:00:00

JavaScript开发TypeScript

2020-11-18 09:29:06

NginxHTTPHTTPS

2022-11-25 16:27:07

应用开发鸿蒙

2015-03-18 10:29:01

私有云混合云云API

2022-04-06 11:33:43

Linux桌面GNOME 42

2020-11-10 08:00:00

机器学习技术科学

2023-11-11 19:07:23

SilverblueLinux

2015-09-07 17:45:04

升级UbuntuLinux

2018-01-08 09:09:46

机器学习模型NET

2009-04-14 09:24:40

OracleXML导出

2011-08-19 17:43:50

win7开始菜单

2020-03-10 22:01:54

物联网安全物联网IOT

2017-09-30 16:18:00

HTML5代码对象

2021-11-15 10:20:50

Ubuntu22.04 LTS JLinux

2013-07-02 09:40:31

2011-08-01 09:09:07

SQL Server SQL Server 数据库

2009-10-10 13:54:20

OPhone

2015-08-05 16:34:15

Ubuntu升级
点赞
收藏

51CTO技术栈公众号