Adds rclone-parents, fixes some other files

This commit is contained in:
2026-02-01 17:33:47 +01:00
parent fc734321c0
commit 91e0a6c522
12 changed files with 60 additions and 18 deletions

View File

@@ -1,9 +1,10 @@
[Unit] [Unit]
Description=Defragments the NAS Description=Defragments the NAS
ConditionPathIsMountPoint=/var/mnt/nas
RequiresMountsFor=/var/mnt/nas
[Service] [Service]
Nice=19
IOSchedulingClass=idle
Type=oneshot Type=oneshot
ExecStart=btrfs filesystem defragment -r /var/mnt/nas ExecStart=btrfs filesystem defragment -r /var/mnt/nas
[Install]
WantedBy=multi-user.target

View File

@@ -2,7 +2,8 @@
Description=Timer for the defragment-nas service Description=Timer for the defragment-nas service
[Timer] [Timer]
OnCalendar=*-*-03 00:00:00 OnCalendar=*-06-03 00:00:00
OnCalendar=*-12-03 00:00:00
Persistent=true Persistent=true
Unit=defragment-nas.service Unit=defragment-nas.service

View File

@@ -0,0 +1,6 @@
[Unit]
Description=Runs rclone to copy the NAS content to the parents NAS
[Service]
Type=oneshot
ExecStart=/usr/bin/flock -n /run/rclone-parents.lock /root/scripts/rclone-parents.sh

View File

@@ -0,0 +1,13 @@
[Unit]
Description=Timer for the rclone-parents service
[Timer]
OnCalendar=08:00:00
OnCalendar=12:00:00
OnCalendar=16:00:00
OnCalendar=20:00:00
Persistent=true
Unit=rclone-parents.service
[Install]
WantedBy=timers.target

View File

@@ -1,6 +1,11 @@
[Unit] [Unit]
Description=Scrubs the NAS Description=Scrubs the NAS
ConditionPathIsMountPoint=/var/mnt/nas
RequiresMountsFor=/var/mnt/nas
[Service] [Service]
Nice=19
IOSchedulingClass=idle
KillSignal=SIGINT
Type=oneshot Type=oneshot
ExecStart=btrfs scrub start /var/mnt/nas ExecStart=btrfs scrub start -B /var/mnt/nas

View File

@@ -2,7 +2,8 @@
Description=Timer for the scrub-nas service Description=Timer for the scrub-nas service
[Timer] [Timer]
OnCalendar=*-*-05 00:00:00 OnCalendar=*-06-05 00:00:00
OnCalendar=*-12-05 00:00:00
Persistent=true Persistent=true
Unit=scrub-nas.service Unit=scrub-nas.service

View File

@@ -3,6 +3,6 @@ set -o errexit -o pipefail -o noclobber -o nounset
target=/var/mnt/nas/containers/navidrome/storage/music target=/var/mnt/nas/containers/navidrome/storage/music
ugid="$(stat -c "%U:%G" "${target}")" ugid="$(stat -c "%U:%G" "${target}")"
source=/var/mnt/nas/containers/nextcloud/storage/data/__groupfolders/1/media/music source=/var/mnt/nas/containers/nextcloud/storage/data/__groupfolders/1/files/media/music
podman run --rm -v "${source}":/input -v "${target}":/output docker.io/eeacms/rsync -a /input /output podman run --rm -v "${source}":/input -v "${target}":/output docker.io/instrumentisto/rsync-ssh rsync -a /input/ /output/
chown -R "${ugid}" "${target}" chown -R "${ugid}" "${target}"

View File

@@ -2,25 +2,25 @@
set -o errexit -o pipefail -o noclobber -o nounset set -o errexit -o pipefail -o noclobber -o nounset
echo "Running $(date)" echo "Running $(date)"
torrents=/var/mnt/nas/containers/qbittorrent/storage/torrents torrents=/var/mnt/nas/containers/qbittorrent/storage/downloads/completed
jdownloader=/var/mnt/nas/containers/jdownloader/storage/output/completed jdownloader=/var/mnt/nas/containers/jdownloader/storage/output/completed
target=/var/mnt/nas/containers/nextcloud/storage/data/__groupfolders/1/downloads target=/var/mnt/nas/containers/nextcloud/storage/data/__groupfolders/1/files/downloads
num_torrents="$(find "${torrents}" -maxdepth 1 -type f | wc -l)" || echo 0 num_torrents="$(find "${torrents}" -mindepth 1 -maxdepth 1 | wc -l)" || echo 0
if [[ "${num_torrents}" -gt 0 ]]; then if [[ "${num_torrents}" -gt 0 ]]; then
find "${torrents}" -maxdepth 1 -type f -exec mv {} "${target}/" \; mv "${torrents}"* "${target}/"
fi fi
echo "Found ${num_torrents} torrent files" echo "Found ${num_torrents} torrent files"
num_jdownloader="$(ls "${jdownloader}" | wc -l)" || echo 0 num_jdownloader="$(find "${jdownloader}" -mindepth 1 -maxdepth 1 | wc -l)" || echo 0
if [[ "${num_jdownloader}" -gt 0 ]]; then if [[ "${num_jdownloader}" -gt 0 ]]; then
mv "${jdownloader}/"* "${target}/" mv "${jdownloader}/"* "${target}/"
fi fi
echo "Found ${num_jdownloader} jdownloader files" echo "Found ${num_jdownloader} jdownloader files"
total_files=$(("${num_torrents}" + "${num_jdownloader}")) total_files=$(("${num_torrents}" + "${num_jdownloader}"))
if [[ "${total_files}" -gt 0 ]]; then if [[ "${total_files}" -gt 0 ]]; then
ugid="$(stat -c "%U:%G" "${target}")" chown --reference="${target}" -R "${target}/"*
chown -R "${ugid}" "${target}/"* chmod --reference="${target}" -R "${target}/"*
chmod 755 "${target}/"* restorecon -vFR "${target}"
echo "Running podman" echo "Running podman"
cd /var/home/nextcloud cd /var/home/nextcloud
sudo -u nextcloud podman exec -it nextcloud bash -c "/var/www/html/occ groupfolders:scan 1" sudo -u nextcloud podman exec -it nextcloud bash -c "/var/www/html/occ groupfolders:scan 1"

View File

@@ -0,0 +1,2 @@
#!/bin/bash
/root/scripts/rclone sync --links /var/mnt/nas encrypted-parents:Backup/

12
pi4.bu
View File

@@ -88,6 +88,10 @@ storage:
mode: 0755 mode: 0755
contents: contents:
local: /home/root/move-downloads-nextcloud.sh local: /home/root/move-downloads-nextcloud.sh
- path: /root/scripts/rclone-parents.sh
mode: 0755
contents:
local: /home/root/rclone-parents.sh
- path: /root/scripts/copy-music.sh - path: /root/scripts/copy-music.sh
mode: 0755 mode: 0755
contents: contents:
@@ -133,6 +137,14 @@ systemd:
enabled: false enabled: false
contents_local: files/move-downloads-nextcloud.service contents_local: files/move-downloads-nextcloud.service
mask: false mask: false
- name: rclone-parents.timer
enabled: false
contents_local: files/rclone-parents.timer
mask: false
- name: rclone-parents.service
enabled: false
contents_local: files/rclone-parents.service
mask: false
- name: copy-music.timer - name: copy-music.timer
enabled: false enabled: false
contents_local: files/copy-music.timer contents_local: files/copy-music.timer

View File

@@ -11,7 +11,7 @@ ContainerName=nextcloud
Environment=MYSQL_DATABASE=nextcloud Environment=MYSQL_DATABASE=nextcloud
Environment=MYSQL_HOST=nextcloud-database Environment=MYSQL_HOST=nextcloud-database
Environment=NEXTCLOUD_TRUSTED_DOMAINS=localhost host.containers.internal nextcloud.gtache.ch Environment=NEXTCLOUD_TRUSTED_DOMAINS=localhost host.containers.internal nextcloud.gtache.ch
Environment=PHP_MEMORY_LIMIT=1024M Environment=PHP_MEMORY_LIMIT=2048M
Environment=PHP_UPLOAD_LIMIT=100G Environment=PHP_UPLOAD_LIMIT=100G
Environment=REDIS_HOST=nextcloud-redis Environment=REDIS_HOST=nextcloud-redis
Environment=TRUSTED_PROXIES=192.168.0.0/16 172.16.0.0/12 169.254.0.0/16 10.0.0.0/8 Environment=TRUSTED_PROXIES=192.168.0.0/16 172.16.0.0/12 169.254.0.0/16 10.0.0.0/8
@@ -31,6 +31,7 @@ Volume=nextcloud-apps.volume:/var/www/html/custom_apps
Volume=nextcloud-themes.volume:/var/www/html/themes Volume=nextcloud-themes.volume:/var/www/html/themes
Volume=/var/mnt/nas/containers/nextcloud/storage/redis-session.ini:/usr/local/etc/php/conf.d/redis-session.ini Volume=/var/mnt/nas/containers/nextcloud/storage/redis-session.ini:/usr/local/etc/php/conf.d/redis-session.ini
Volume=/var/mnt/nas/containers/nextcloud/storage/remoteip.conf:/etc/apache2/conf-enabled/remoteip.conf Volume=/var/mnt/nas/containers/nextcloud/storage/remoteip.conf:/etc/apache2/conf-enabled/remoteip.conf
Volume=/var/mnt/nas/containers/nextcloud/storage/php-local.ini:/usr/local/etc/php/conf.d/php-local.ini
Volume=nextcloud-data.volume:/var/www/html/data Volume=nextcloud-data.volume:/var/www/html/data
[Service] [Service]

View File

@@ -16,7 +16,7 @@ Secret=tga-credentials,type=env,target=USER
Secret=zero-credentials,type=env,target=USER1 Secret=zero-credentials,type=env,target=USER1
Volume=/var/mnt/nas:/nas Volume=/var/mnt/nas:/nas
Volume=/var/mnt/nas/backup/zero:/zero Volume=/var/mnt/nas/backup/zero:/zero
Volume=/var/mnt/nas/paperless/input:/paperless-input Volume=/var/mnt/nas/containers/paperless/storage/consume:/paperless-input
[Service] [Service]
Restart=always Restart=always