Рейтинг:0

Запись определенного формата времени в текстовый файл каждую минуту с помощью Cron

флаг br

Я довольно новичок в Linux. Недавно я хотел научиться работать с Cron. Поэтому я написал следующую строку в файл crontab, и это сработало:

* * * * * дата >> //home/os/system-date.txt

Эта строка добавит текущую дату и время в система-date.txt каждую минуту.

Когда я запускаю следующую команду в терминале, время печатается в определенном формате:

дата +"%H-%M-%S"

Например, 23-59-59 печатается.

Но когда я хочу сделать это с помощью Cron, в файле txt ничего не пишется. Чтобы быть конкретным, когда я пишу следующую строку в crontab

* * * * * date +"%H-%M-%S" >> //home/os/system-date.txt

Ничего не произошло. Интересно, почему.

FedKad avatar
флаг cn
У вас может быть синтаксическая ошибка в командной строке. Попробуйте добавить `2>>/home/os/cron.err` в конец записи crontab, чтобы увидеть, что это за ошибка.
Fish_n_Chips avatar
флаг br
Спасибо. Я сделал, но файл cron.err не создается. @ФедонКадифели
Рейтинг:2
флаг cn

Вы должны избежать процента (%) знаки в вашем кронтаб записи с обратной косой чертой (\) как это:

* * * * * date +"\%H-\%M-\%S" >>/home/os/system-date.txt 2>>/home/os/system-date.err

Знаки процента имеют особое значение в кронтаб записи: они интерпретируются как символы новой строки. Пожалуйста, см. справочная страница для crontab(5):

«Шестое» поле (остальная часть строки) указывает команду, которую нужно запустить. Вся командная часть строки до новой строки или % персонаж, будет выполняться /бин/ш или оболочкой, указанной в переменной SHELL файла кронтаб файл. Знаки процента (%) в команде, если только не используется обратная косая черта (\), будут заменены символами новой строки, а все данные после первого % будет отправлено команде в качестве стандартного ввода. Невозможно разделить одну командную строку на несколько строк, как в конце оболочки "\".

Также обратите внимание, что команда в кронтаб вход не будет быть казнен /бин/баш обычно. Таким образом, всегда рекомендуется создавать сценарий Bash и вызывать этот сценарий Bash из кронтаб. Еще один момент, который следует отметить, заключается в том, что ДОРОЖКА переменная среды намного проще в кронтаб выполняемая команда (или сценарий), поэтому снова рекомендуется использовать полные пути для команд, выполняемых в сценарии, который написан для вызова кронтаб.

Рейтинг:0
флаг cn

Вы можете создать простой файл сценария (например, addDate.sh), например:

#!/бин/баш
date +"%H-%M-%S" 2>&1 >> //home/os/system-date.txt

2>&1 перенаправляет ошибки также в указанный выходной файл.

и в вашем crontab запустите этот файл сценария.

* * * * * /myscripts/addDate.sh

Где /myscripts это путь, по которому вы сохранили файл сценария.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.