Новая схема управления версиями является в значительной степени точно тем же как старыми 2,6 схемами управления версиями, за исключением того, что "3". используется вместо "2,6". Другими словами, вместо того, чтобы назвать выпуск после 2.6.39 версий 2.6.40, мы просто назвали его 3.0. Стабильные обновления, вместо 2.6.40.1, 2.6.40.2, и т.д. теперь 3.0.1, 3.0.2, и т.д. Вместо 2.6.41, мы имеем 3.1. И так далее.
Ничто не изменилось о модели разработки, окне слияния, цикле выпуска, и т.д. Единственное изменение - то, что у нас есть тот меньше компонента к номеру версии (т.е. 3.x вместо 2.6.x).
Я решил проблему. Существует два пути:
M1
Измените перенаправление от &>>
кому: 2>&1
. Так теперь crontab -e
похож
*/1 * * * * /home/ranveer/vimbackup.sh >> /home/ranveer/vimbackup.log 2>&1
Я верю вышеупомянутым работам потому что по умолчанию cron
использует sh
выполнять задачу вместо bash
так &>>
не поддерживается sh
.
M2
Измените оболочку по умолчанию путем добавления SHELL=/bin/bash
в crontab -e
файл.
отказ от ответственности [1].
Я хотел бы добавить сноску или дополнение к ответу @RanRag .
Убедитесь, что ваш синтаксис перенаправления оболочки соответствует /bin/sh
. Если вы попытаетесь использовать недопустимый синтаксис перенаправления оболочки с /bin/sh
, ваша команда завершится ошибкой, и ваше задание cron никогда не будет запущено.
Если в файлах конфигурации /etc/cron.d/example1
вы укажете пользователя, отличного от root
, и оболочка входа этого пользователя не /bin/bash
... вы все равно должны использовать синтаксис /bin/sh в команде /etc/cron.d/example1
.
Если у вашего пользователя установлена оболочка csh
, zsh
или ksh
для его оболочки входа в систему. В вашем конфигурационном файле /etc/cron.d/example1
команда должна использовать синтаксис /bin/sh
.В частности, любое перенаправление оболочки должно иметь синтаксис /bin/sh
.
Если вы попытаетесь использовать, например, синтаксис перенаправления оболочки csh
в своем /etc/cron.d/example1
, ваше задание cron никогда не запустится. Файл журнала для crond
, расположенный по адресу /var/log/cron
, должен сказать, что команда запущена, но команда выдаст ошибку синтаксиса до того, как ваша команда будет запущена.
crond
выдает сообщения об ошибках синтаксиса? Об ошибке никогда не сообщается в /var/log/cron
. crond
вместо этого по умолчанию выдает любые сообщения об ошибках, используя mail
. Поэтому вы должны проверить /var/spool/mail/${USER}
, чтобы увидеть, в чем ошибка.
[1]
sysv
systemd
информация может отличаться centos-6
и может не относиться к другим дистрибутивам sysv
. centos-6
специально, потому что разные дистрибутивы могут иметь различную реализацию crond
, которая отличается отcentos-6
cron
похожsh
: это не выбирает единственную программу. Существует много реализаций. Самая распространенная реализация является кроном Vixie. Я (текущий, не оригинал) автор другого. Я полагаю, что большинство демонов крона будет использовать системуsh
, но это может варьироваться по тому, принимает ли это&>>
. Некоторые демоны крона (как мой) не позволяют Вам измениться, с которым оболочка выполняет строки кронаSHELL=...
строки в crontab. Я рад, что Вы нашли решение, которое работает на Вас; просто мысль, на которую стоило указать там, является многими переменными, которые могли влиять, работает ли это на других. – dubiousjim 19.10.2012, 18:50YYYY-MM-DD_hh-mm-sec
на имя выходного файла, так, чтобы каждое имя файла отличалось и сохранено без перезаписи? – Danijel 11.01.2016, 15:18*/1 * * * * /home/ranveer/vimbackup.sh &>> /home/ranveer/vimbackup.log
делает то же самое также. привет-ангел – Yanick Girouard 15.08.2017, 17:56