Skip to content

Commit

Permalink
Merge pull request erikw#17 from toddejohnson/16-metered-net
Browse files Browse the repository at this point in the history
Add requires to unmetered-connection.service
  • Loading branch information
erikw authored Jul 23, 2019
2 parents 83f1b1e + 5751d90 commit b7497a5
Show file tree
Hide file tree
Showing 6 changed files with 32 additions and 2 deletions.
7 changes: 7 additions & 0 deletions etc/systemd/system/nm-unmetered-connection.service
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[Unit]
Description=Check if the current NetworkManager connection is metered

[Service]
Type=oneshot
ExecStart=/usr/local/sbin/nm-unmetered-connection.sh

3 changes: 2 additions & 1 deletion etc/systemd/system/restic-backup.service
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
[Unit]
Description=Backup with restic to Backblaze B2
OnFailure=status-email-user@%n.service
Requires=nm-unmetered-connection.service

[Service]
Type=simple
Nice=10
ExecStart=/usr/local/sbin/restic_backup.sh
# $HOME or $XDG_CACHE_HOME must be set for restic to find /root/.cache/restic/
Environment="HOME=/root"
Environment="HOME=/root"
1 change: 1 addition & 0 deletions etc/systemd/system/restic-backup.timer
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
[Unit]
Description=Backup with restic on schedule
Requires=nm-unmetered-connection.service

[Timer]
OnCalendar=daily
Expand Down
1 change: 1 addition & 0 deletions etc/systemd/system/restic-check.service
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
Description=Check restic backup Backblaze B2 for errors
OnFailure=status-email-user@%n.service
Conflicts=restic.service
Requires=nm-unmetered-connection.service

[Service]
Type=simple
Expand Down
3 changes: 2 additions & 1 deletion etc/systemd/system/restic-check.timer
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
[Unit]
Description=Check restic backup Backblaze B2 for errors on a schedule
Requires=nm-unmetered-connection.service

[Timer]
OnCalendar=monthly
Persistent=true

[Install]
WantedBy=timers.target
WantedBy=timers.target
19 changes: 19 additions & 0 deletions usr/local/sbin/nm-unmetered-connection.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#!/bin/bash

systemctl is-active dbus.service >/dev/null 2>&1 || exit 0
systemctl is-active NetworkManager.service >/dev/null 2>&1 || exit 0

metered_status=$(dbus-send --system --print-reply=literal \
--system --dest=org.freedesktop.NetworkManager \
/org/freedesktop/NetworkManager \
org.freedesktop.DBus.Properties.Get \
string:org.freedesktop.NetworkManager string:Metered \
| grep -o ".$")

if [[ $metered_status =~ (1|3) ]]; then
echo Current connection is metered
exit 1
else
exit 0
fi

0 comments on commit b7497a5

Please sign in to comment.