当我通过USB插入HD时,它应该( a)挂载它,b)运行我的备份脚本。
我现在有backintime.service
[Unit]
Description="Runs backintime to backup."
[Service]
User=user
ExecStart=/usr/bin/systemd-inhibit --what=sleep --why="Backup" "backintime -b"启动备份脚本和backup.mount
[Unit]
Description=Backup Disk
Before=backintime.service
[Mount]
What=/dev/disk/by-uuid/931129c7-7f15-4042-9a69-796c9eb8ffc9
Where=/media/backup但是如何自动执行呢?
发布于 2013-09-08 05:28:42
我正在努力实现一个非常类似的系统。我已经开始工作了,但是我仍然想调整这个和那个(参见这个更一般的问题:系统- umount设备的售后服务,这取决于它的完成)。
以下是解决您的问题的有效解决方案:
[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。
[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下添加单元。
KERNEL=="sd*", ATTRS{serial}=="<HD SERIAL HERE>", TAG+="systemd", ENV{SYSTEMD_WANTS}+="backup.service" 注意:要获取特定设备的属性列表,请使用udevadm info -a -n /dev/sd*,包括其序列号。
https://unix.stackexchange.com/questions/55317
复制相似问题