скрипт bash, выполняющий резервное копирование неисправностей при запуске через systemd

#bash #systemd #zfs

Вопрос:

У меня есть скрипт bash, который делает снимок ZFS и по трубопроводу загружает его в корзину s3. В этом вся суть:

 torun="zfs send -c ztank/data@$BACKUP_NAME | openssl enc -aes-256-cbc -iter 1000 -salt -pass pass:$BACKUP_PASS  | lz4c | $s3_command s3 cp --expected-size 188743680 - s3://instamongo.backup/$BACKUP_NAME.lz"
 

при запуске вручную (с помощью root) он делает именно то, что ожидается.

при запуске через таймер systemd ошибок не возникает, загружается небольшой файл, но при распаковке и расшифровке содержимое остается пустым.

когда я снова запускаю сервисный модуль через systemctl, скрипт работает нормально.

проблема, по-видимому, заключается в том, что только при срабатывании таймера ZFS отправляет пустое содержимое? НО проблема в том, что метки времени в файле журнала показывают, что для завершения загрузки потребовалось обычное время (более 3 часов для исходных данных 900G), поэтому это не имеет смысла.

вот блоки systemd:

 [Unit]
Description=backup mongo
ConditionVirtualization=!container

[Service]
User=root
Type=oneshot
WorkingDirectory=/root
ExecStart=/root/s3backup.sh
 

и

 [Unit]
Description=backup mongo once per week
ConditionVirtualization=!container

[Timer]
OnCalendar=weekly
AccuracySec=1h
Persistent=true

[Install]
WantedBy=timers.target