diff --git a/files/transfer_recordings.service b/files/transfer_recordings.service new file mode 100644 index 0000000..330dc86 --- /dev/null +++ b/files/transfer_recordings.service @@ -0,0 +1,8 @@ +[Service] +Type=simple +#RemainAfterExit=yes +User=motion +ExecStart=/usr/local/bin/transfer_recordings.sh + +[Unit] +OnFailure=status_email_antoniodelgado@%n.service diff --git a/files/transfer_recordings.sh b/files/transfer_recordings.sh new file mode 100644 index 0000000..4f2c83b --- /dev/null +++ b/files/transfer_recordings.sh @@ -0,0 +1,12 @@ +#!/bin/bash +# Transfering files +rsync -ar --exclude \*.jpg -e 'ssh -p 1122' /srv/expendable_data/motion 192.168.1.251:/srv/expendable_data/ +return_code="$?" +if [ "${return_code}" != "0" ]; then + echo "Error ${return_code} transfering recordings. I don't delete files, but this host might get full." + exit 1 +fi +# Deleting all files older than a day +find /srv/expendable_data/motion -type f -ctime +1 -delete +# Deleting all JPGs older than 0.1 days +find /srv/expendable_data/motion -type f -ctime +0.1 -iname \*.jpg -delete diff --git a/files/transfer_recordings.timer b/files/transfer_recordings.timer new file mode 100644 index 0000000..94e4535 --- /dev/null +++ b/files/transfer_recordings.timer @@ -0,0 +1,7 @@ +[Timer] +OnBootSec=10min +OnUnitActiveSec=10min +Unit=transfer_recordings.service + +[Install] +WantedBy=timers.target diff --git a/handlers/main.yml b/handlers/main.yml index 6197089..0bfd3bb 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -3,3 +3,6 @@ service: name: motion state: restarted +- name: Reload systemd + systemd: + daemon_reload: true diff --git a/tasks/configure.yml b/tasks/configure.yml index c1e62d9..ffa2438 100644 --- a/tasks/configure.yml +++ b/tasks/configure.yml @@ -113,3 +113,27 @@ recursive: true state: present default: true + + - name: Deploy service unit to transfer recordings + copy: + src: files/transfer_recordings.service + dest: /etc/systemd/system/transfer_recordings.service + notify: Reload systemd + + - name: Deploy timer unit to transfer recordings + copy: + src: files/transfer_recordings.timer + dest: /etc/systemd/system/transfer_recordings.timer + notify: Reload systemd + + - name: Enable service unit to transfer recordings + systemd: + daemon_reload: true + name: transfer_recordings.service + enabled: true + + - name: Enable timer unit to transfer recordings + systemd: + daemon_reload: true + name: transfer_recordings.timer + enabled: true diff --git a/tasks/install.yml b/tasks/install.yml index 60c87bb..d95cc40 100644 --- a/tasks/install.yml +++ b/tasks/install.yml @@ -11,4 +11,12 @@ dest: /usr/local/bin/process_motion_event.sh owner: motion group: motion - mode: 0750 \ No newline at end of file + mode: 0750 + + - name: Deploy script to transfer recordings + copy: + src: files/transfer_recordings.sh + dest: /usr/local/bin/transfer_recordings.sh + owner: motion + group: motion + mode: 0750