首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在系统d插入的HD上运行备份

在系统d插入的HD上运行备份
EN

Unix & Linux用户
提问于 2012-11-09 17:54:01
回答 1查看 1.8K关注 0票数 6

当我通过USB插入HD时,它应该( a)挂载它,b)运行我的备份脚本。

我现在有backintime.service

代码语言:javascript
复制
[Unit]
Description="Runs backintime to backup."

[Service]
User=user
ExecStart=/usr/bin/systemd-inhibit --what=sleep --why="Backup" "backintime -b"

启动备份脚本和backup.mount

代码语言:javascript
复制
[Unit]
Description=Backup Disk
Before=backintime.service

[Mount]
What=/dev/disk/by-uuid/931129c7-7f15-4042-9a69-796c9eb8ffc9
Where=/media/backup

但是如何自动执行呢?

EN

回答 1

Unix & Linux用户

发布于 2013-09-08 05:28:42

我正在努力实现一个非常类似的系统。我已经开始工作了,但是我仍然想调整这个和那个(参见这个更一般的问题:系统- umount设备的售后服务,这取决于它的完成)。

以下是解决您的问题的有效解决方案:

backup.service

代码语言:javascript
复制
[Unit]
Description=<DESCRIPTION HERE>
BindsTo=<STORAGE DEVICE UNIT HERE>.device mnt-backup.mount
After=<STORAGE DEVICE UNIT HERE>.device mnt-backup.mount

[Service]
ExecStart=<CALL TO BACKUP SCRIPT HERE>

注意:要获得存储设备单元的列表,请使用systemctl list-units --all --full | grep disk

您也可以在单元下面添加RefuseManualStart=yes。

mnt-backup.mount

代码语言:javascript
复制
[Unit]
DefaultDependencies=no
Conflicts=umount.target
Before=umount.target

[Mount]
What=/dev/disk/by-uuid/<DEVICE UUID HERE> 
Where=/mnt/backup
Type=<FILESYSTEM HERE>

现在,为了自动启动backup.service,我们将使用udev规则。

在这里,您也可能希望在RefuseManualStart=yes下添加单元。

90-backup.rules

代码语言:javascript
复制
KERNEL=="sd*", ATTRS{serial}=="<HD SERIAL HERE>", TAG+="systemd", ENV{SYSTEMD_WANTS}+="backup.service"  

注意:要获取特定设备的属性列表,请使用udevadm info -a -n /dev/sd*,包括其序列号。

票数 4
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/55317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档