motion_sync
...is a little bash script for rpi + a USB webcam that I wrote to upload motioneye vids and pics to you box account every minute for security reasons.
The idea behind it is that a thief / malicious person might be knowledgeable of the pi / motioneye setup and either cut the power to the premise before breaking in or go to the setup pi / webcam and disconnect it from power / disconnect the USB webcam or the LAN cable...
With my script even if a break-in happens, the thief / malicious person will be captured and if properly "UPS-ed" (pi+router) have no chance in "not" getting captures uploaded to cloud storage.
I use motioneye because is open source and free, and lightweight, so can run on a pi.
I use Box because the free account gives us 10GB
I use a Pi because it is cheap and has WiFi and LAN and USB, so a cheap WebCam will do.
It works in conjuction with motioneye and with an rclone box service I also created in /etc/systemd/user/rclone-box.service
Getting started
Install motioneye, create a box account and do not use it for anything else.
Install rclone on the pi and connect it to Box (google it)
Once Motioneye is working and saving to /var/lib/motioneye create a systemd service that keeps Box rclone alive:
mkdir -p ~/.config/systemd/user
nano ~/.config/systemd/user/rclone-box.service ''' [Unit] Description=Rclone Box Mount Documentation=man:rclone(1) After=network-online.target Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/rclone mount box: %h/box
--config %h/.config/rclone/rclone.conf
--vfs-cache-mode full
--vfs-cache-max-size 10G
--vfs-cache-max-age 24h
--dir-cache-time 72h
--allow-other
--umask 022
ExecStop=/bin/fuermount -u %h/box
Restart=on-failure
RestartSec=10s
[Install] WantedBy=default.target ''' Finally, create 2 crontab entries, one to keep the Box OAuth token alive and one to run my script every minute:
sudo crontab -e
Keep Box OAuth token alive (runs weekly, e.g., every Sunday at 3 AM)
0 3 * * 0 rclone lsd box: >/dev/null 2>&1
Sync motion recordings and cleanup (runs every minute)
-
-
-
-
- /home/$USER/sync_motion.sh >/dev/null 2>&1
-
-
-
My script does the following for you: