Задать вопрос
@hellfleet

Почему не работает скрипт через crontab?

Есть простейший скрипт для бэкапа
#!/bin/bash
ssh -2 backup@xxx.xxx.xxx.xxx "mysqldump -uUSR -pPASS DB_NAME | gzip -9" > /media/backups/DB-LIVE-$(date +%Y-%m-%d-T%H-%M).sql.gz
ls -t1 /media/backups/ |tail -n +25| xargs rm -f

Делается дамп таблицы, удаляются все файлы кроме последних 24

По крону запускается каждый час
0 * * * * /opt/backup.sh

В итоге скрипт только создает файлы бэкапа, не удаляя файлов.
Если запустить скрипт вручную, то все работает.
Подскажите в чем проблема при запуске его через крон.
  • Вопрос задан
  • 77 просмотров
Подписаться 2 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Яндекс Практикум
    Python-разработчик буткемп
    4 месяца
    Далее
  • Яндекс Практикум
    Фулстек-разработчик
    16 месяцев
    Далее
  • Нетология
    Системный администратор
    11 месяцев
    Далее
  • Skillfactory
    Профессия «Белый» хакер
    13 месяцев
    Далее
  • Нетология
    DevOps-инженер с нуля
    19 месяцев
    Далее
  • Нетология
    Специалист по информационной безопасности + нейросети
    12 месяцев
    Далее
  • Skillbox
    Старт в DevOps: системное администрирование для начинающих
    4 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 2
по умолчанию крон не исползует переменное окружение
в частности PATH
по этому он не знает где лежит интерпритатор
/bin/bash/ls -t1 /media/backups/ |tail -n +25| /bin/bash/xargs rm -f
Ответ написан
@galaxy
ls -t1 /media/backups/ выведет только имя файла, а не полный путь. cd надо
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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