Crontab для резервного копирования каталога

На самом деле я попытался написать свой собственный сценарий. Кажется, работает:

#!/bin/bash

find . -type f -iname "*5.mpg" -print0 | while IFS= read -r -d $'\0' line; do
   new=${line//5.mpg}
   zero="0.mpg"
   buffer=$new$zero
   new=$buffer
   mv $line $new
   echo "Moving $line"
done
0
09.04.2015, 17:14
2 ответа

Текущий (рабочий) каталог, вероятно, не установлен в /opt/www при запуске cronjob. Вы можете установить его в файле backup.sh вашего скрипта перед tar..... line by:

cd /opt/www

или вы можете использовать полный путь в tar line by:

tar zcf backups/$FILENAME /opt/www/f

Я также могу посоветовать использовать полный путь для backups/$FILENAME

2
28.01.2020, 02:36

diff может быть неправильным инструментом. Похоже, что необходимо использовать comm , который классифицирует каждую строку как находящуюся в одном файле, другом файле или общую для обоих.

Однако ключевое ограничение состоит в том, что comm требует сортировки обоих входных файлов

-121--125580-

При запуске cronjob для текущего (рабочего) каталога, вероятно, не установлено значение/opt/www. Вы можете задать его в backup.sh сценария перед tar... line by:

cd /opt/www

или вы можете использовать полный путь в строке tar по:

tar zcf backups/$FILENAME /opt/www/f

Я также могу посоветовать использовать полный путь для резервного копирования/$ FILENAME

-121--217412-

Когда corntab запускает код, он запускается с относительного пути, начиная с вашего домашнего каталога.

Простое исправление: В сценарии можно использовать абсолютный путь к каталогу (начиная с /).

Другой метод: используйте «path _ dir» в коде для переносимости.

path=$(readlink -f $0)                                       
path_dir=${path%/*}
0
28.01.2020, 02:36

Теги

Похожие вопросы