я написал bash скрипт которые делают резервную копию некоторых файлов из удаленной папки при запуске системы.
Итак, при запуске системы он монтирует удаленный общий ресурс в файл модуля:
[Unit]
Description=CIFS Share from spr1-backup01
After=network-online.target
[Mount]
What=//192.168.18.12/oracle_backup
Where=/mnt/smb
Type=cifs
Options=ro,vers=2.1,credentials=/root/creds/.cred_oralocalsys
[Install]
WantedBy=multi-user.target
И после этого запускается резервный модуль (/root/nas/sender.sh - мой сценарий резервного копирования)
[Unit]
Description=Backup oracle database
After=mnt-smb.mount
[Service]
Type=simple
ExecStart=/root/nas/sender.sh
StandardOutput=journal
[Install]
WantedBy=multi-user.target
Проблема заключается в том, что запускается автоматически при запуске - он пропускает фактический процесс резервного копирования (я имею в виду часть rsync в сценарии bash, упомянутом ранее). Если я запущу этот скрипт вручную - все будет нормально и работает как положено.
Есть идеи, почему это происходит?
Подходит ли systemd для работы? cron позволяет указать задачи, которые должны выполняться один раз при загрузке.
@reboot /path/to/job
Таким образом, резервное копирование выполняется параллельно со всем остальным. Если на выполнение резервного копирования уйдет несколько часов, запуск его при каждой перезагрузке может стать операционным кошмаром.