https://www.lexium.ru/2016/11/cron-oshibka-126/

Cron: Ошибка 126

Давным давно, кажется в прошлом году, я написал скрипт, который делает полный бэкап сайта и базы данных, а потом заливает это все в облако.

Запускалась эта прелесть по крону. В общем, удобно. Было…

Потом я переехал на другой сервер. Увы, хостер отказался менять IP на имеющемся, даже за доплату. Не суть. Минусом было то, что автоматические бэкапы я так и не наладил, не смотря на готовые скрипты.

И вот, свершилось. Сегодня руки таки-дошли до этого важного дела. Скрипты пришлось немного подправить, крон настроил без проблем, но при запуске он выдал ошибку 126.

Ок. Начинаем чинить скрипт.

  1. Проверяем, чтобы он значился как исполняемый файл. Т.е., по-простому, присваиваем права доступа 755. Сделано.
  2. Проверяем пользователя, от имени которого создан скрипт. Пусть это будет root. Готово.
  3. Ищем, нет ли в скрипте символов Виндовых перевода каретки (в редакторе Midnight-коммандера она выглядит как ^M). Опа! Есть!

Будем удалять символы перевода каретки, чтобы избавить Cron от ошибки 126.

Заходим в терминал по SSH, открываем папку где лежит скрипт, вводим комманду:

cat script.sh | tr -d '\r' > script2.sh

Отлично. Проверяем script2.sh

Тут все нормально. Теперь удаляю script.sh, а script2.sh переименовываю в script.sh

Осталось пройти по пунктам 1 и 2. Т.е. ставлю права доступа и пользователя. Третий пункт уже исправлен.

Запускаю скрипт кроном. Все работает, что и требовалось.

Кажется что-то забыл. Ах да! Проверяю наличие архива с бэкапом в облаке, ведь все делалось ради него.

Файл присутствует. Супер.

Что еще? Точно! Записываю в блог, чтобы не потерять.

Вот теперь точно все.

Напишите комментарий