Скрипт удаленного локального резервного копирования - PullRequest
0 голосов
/ 31 мая 2018

Я пытаюсь создать bash-скрипт, который запускается через crontab, чтобы выполнить резервное копирование удаленного на локальное.Все работает, кроме моей скользящей резервной части, где хранится только 4 резервных копии.

#!/bin/bash
dateForm=`date +%m-%d-%Y`
fileName=[redacted]-"$dateForm"
echo backup started for [redacted] on: $dateForm >> /home/backups/backLog.log
ls -tQ /home/backups/[redacted] | tail -n+5 | xargs -r rm

ssh root@[redacted] "tar jcf - -C /home/[redacted]/[redacted] ." > "/home/backups/[redacted]/$fileName".tar.bz2

if [ ! -f "/home/backups/[redacted]/$fileName.tar.bz2" ]
then
   echo "something went wrong with the backup for $fileName!" >> /home/backups/backLog.log
else
        echo "Backup completed for $fileName" >> /home/backups/backLog.log
    fi

строка ls будет работать, если она выполняется в каталоге просто отлично, но поскольку crontab выполняет ее, и мне нужно, чтобы скрипт находился вне папки, для которой он предназначен.Я не могу настроить таргетинг на rm в правильном каталоге, используя канал ls

1 Ответ

0 голосов
/ 01 июня 2018

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

ls -tQ $(find /home/backups/[redacted] -type f -name "*") | tail -n+5 | xargs -r rm

, просто отправив ответ кому-то, что нене нужно создавать сценарий непрерывного резервного копирования, который полностью зависит от форматирования даты, поскольку ВСЕГДА должно быть не менее 4 резервных копий в целевой папке.

...