Нежелательный r в скрипте perl cron

#linux #cron

#linux #cron

Вопрос:

Я был на краю Интернета и в линиях поддержки, пытаясь разобраться в этом, но безрезультатно:

Я пытаюсь настроить задание cron, чтобы мой облачный сайт RackSpace получал резервную копию. Есть много примеров для использования, но, похоже, я не могу заставить ни один из них работать, потому что он добавляет ‘ r’ в конец всех моих строк. Я пробовал пару редакторов, таких как notepad и notepad , но ничего не изменилось. Вот пример моего backup.sh:

 #!/bin/sh

webroot='/mnt/example/123456/www.mysite.com/web/content/'
backuproot='/mnt/example/123456/www.mysite.com/backup'

###################
# Backup Database #
###################
mysqldump -h my.database.host -u my_username -p'my_password' my_database_name > $backuproot/db_backup.sql

###############
# Backup Site #
###############
tar -czpvf $backuproot/site_backup.tar.gz $webroot
  

Пример ошибок, которые я получаю:

 tar: /mnt/example/123456/www.mysite.com/web/content/rr: Cannot stat: No such file or directory
tar: /mnt/example/123456/www.mysite.com/backupr/site_backup.tar.gz: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error exit delayed from previous errors
  

По какой-то причине скрипт рассматривает ‘ r’ как часть команды, и я не уверен, как этого избежать. Буду признателен за любую помощь.

Ответ №1:

По какой-либо конкретной причине это помечено как Perl?

В любом случае, я предполагаю, что вы редактируете в Windows, а затем пытаетесь выполнить на компьютере с Linux. Команда dos2unix должна преобразовать окончания строк, чтобы у вас не возникло этой проблемы.

Комментарии:

1. Вы правы, я нахожусь в Windows и пытаюсь выполнить на компьютере с Linux. У меня нет доступа к запуску dos2unix на компьютере Linux, но спасибо за ответ и подсказку.

Ответ №2:

Существуют редакторы для Windows, которые могут обрабатывать окончания строк в стиле Linux, например EditPad.

Комментарии:

1. Сработало отлично, спасибо! Кроме того, попробовав EditPad и узнав, что искать, я обнаружил, что Notepad тоже поддерживает это (Правка> Обложка EOL).

2. Спасибо DM и MRAB. Как раз тогда использовал Notepad для устранения аналогичной проблемы, с которой я столкнулся. Могу подтвердить, что это решение.

Ответ №3:

Проблема в окончаниях строк в вашем файле.

В Windows строки в файле заканчиваются символами CR LF (rn). В unix возврат каретки не используется, поэтому они просто заканчиваются символом LF (n).

Вам нужно будет изменить тип окончания строки, который вы используете — с Notepad вы можете изменить формат файла через меню Редактирования (найдите что-то вроде формата Unix, окончаний строк Unix и т.д.).

Если вы хотите узнать ВСЕ о окончаниях строк, смотритеhttp://en.wikipedia.org/wiki/Newline.