сценарий удара - tar не Может статистика: Никакой такой файл или каталог, выходящий с состоянием отказа из-за предыдущих ошибок

Я пробую простой сценарий удара для резервного копирования моих исходных файлов от моего корневого каталога веб-сайта до моего /home/backups/files каталог.

script2.sh

#!/bin/bash
#START
TIME=`date +%b-%d-%y`
FILENAME=backup-$TIME.tar.gz
SRCDIR="var/www/html/My_Site"
DESDIR="/home/backups/files"
tar cpzfP $DESDIR/$FILENAME $SRCDIR
#END

Ошибка:

tar: /var/www/html/My_Site\r: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
  1. Я пересекаюсь проверенный на Пробелы в каждой строке кода, нет ни одного.

  2. Крест проверил разрешение папки и на SRC и на DES, его 0777.

Я не получаю идеи относительно того, почему я добираюсь Cannot stat: No such file or directory.

0
задан 28 November 2016 в 13:00

2 ответа

Это смотрит на меня как Вы, сценарий имеет возвраты каретки Windows в нем, которые вызывают отказ. Ключ к разгадке этого \r в конце пути в переменной SRCDIR, которую показывают в коде ошибки как /var/www/html/My_Site\r. Очевидно, тот путь делает не существуют с добавленным \r на конце.

Вот sed команда, которая можно работать сценарии для удаления возвратов каретки, это сделает резервное копирование исходного сценария, названного script2.sh.bak.

sed -i.bak 's/\r//g' script2.sh

сценарий должен работать правильно теперь, можно удалить резервную версию, после того как Вы проверили это.

Другой метод для избавлений от тех нежелательных возвратов каретки должен был бы использовать tr -d '\r' script2.sh, но необходимо будет направить вывод к новому файлу и копию это вместо старого.

Еще одна вещь, которая была бы полезна, будет состоять в том, чтобы гарантировать, чтобы Вы заключили свои переменные в кавычки при использовании их в сценарии. Это - хорошая практика для вхождения.

1
ответ дан 28 September 2019 в 02:45

Вы имеете права записать в папку DESDIR?

кроме того, для предотвращения "tar: Удаление продвижения '/' от имен элемента" пробует это:

tar cpzfP $DESDIR/$FILENAME $SRCDIR

я не знаю, почему, но это работает на меня.

2
ответ дан 28 September 2019 в 02:45

Другие вопросы по тегам:

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