Давным давно, кажется в прошлом году, я написал скрипт, который делает полный бэкап сайта и базы данных, а потом заливает это все в облако.
Запускалась эта прелесть по крону. В общем, удобно. Было…
Потом я переехал на другой сервер. Увы, хостер отказался менять IP на имеющемся, даже за доплату. Не суть. Минусом было то, что автоматические бэкапы я так и не наладил, не смотря на готовые скрипты.
И вот, свершилось. Сегодня руки таки-дошли до этого важного дела. Скрипты пришлось немного подправить, крон настроил без проблем, но при запуске он выдал ошибку 126.
Ок. Начинаем чинить скрипт.
- Проверяем, чтобы он значился как исполняемый файл. Т.е., по-простому, присваиваем права доступа 755. Сделано.
- Проверяем пользователя, от имени которого создан скрипт. Пусть это будет root. Готово.
- Ищем, нет ли в скрипте символов Виндовых перевода каретки (в редакторе Midnight-коммандера она выглядит как ^M). Опа! Есть!
Будем удалять символы перевода каретки, чтобы избавить Cron от ошибки 126.
Заходим в терминал по SSH, открываем папку где лежит скрипт, вводим комманду:
cat script.sh | tr -d '\r' > script2.sh
Отлично. Проверяем script2.sh
Тут все нормально. Теперь удаляю script.sh, а script2.sh переименовываю в script.sh
Осталось пройти по пунктам 1 и 2. Т.е. ставлю права доступа и пользователя. Третий пункт уже исправлен.
Запускаю скрипт кроном. Все работает, что и требовалось.
Кажется что-то забыл. Ах да! Проверяю наличие архива с бэкапом в облаке, ведь все делалось ради него.
Файл присутствует. Супер.
Что еще? Точно! Записываю в блог, чтобы не потерять.
Вот теперь точно все.
Напишите комментарий