cron добавлен, но не выполняет текущее время - PullRequest
0 голосов
/ 06 мая 2020

вот мой рецепт. Я пытаюсь создать новый текстовый файл с текущим временем и датой

cron 'cron_disply_time' do
  minute '*/1'
  command "echo #{Time.new.strftime("%Y-%m-%d %H:%M")} > /home/vagrant/learn-cron/cookbooks/t.txt"
  action :create
end

Это всегда занимает время, когда было добавлено задание

*/1 * * * * echo 2020-05-07 14:06 > /home/vagrant/learn-cron/cookbooks/t.txt

некоторые, пожалуйста, дайте мне знать, как я могу сделать его исполняемым только с рецептом

Ответы [ 2 ]

0 голосов
/ 08 мая 2020
cron 'cron_disply_current_time' do
  minute '*/1'
  command 'NOW=$(date +"%T") && sudo echo "Current time:"  $NOW > /home/vagrant/current_time.txt'
  action :create
end

date покажет текущую дату

NOW=$(date +"%T") покажет время

sudo echo "Current time:" $NOW > /home/vagrant/current_time.txt' добавит «Текущее время:» 11:14: 19 в файл current_time.txt

0 голосов
/ 08 мая 2020
Ресурс

cron генерирует файл stati c с командой внутри, так что да, он поместит 1 и ту же строку в файл.

В bash текущее время можно получить путем вызова date

$ date
Fri May  8 09:58:39 EEST 2020

Таким образом, вы можете использовать эту функцию внутри своего cron, чтобы получить текущее время следующим образом:

cron 'cron_disply_time' do
  minute '*'
  command 'date "+%F %H:%M" > /home/vagrant/learn-cron/cookbooks/t.txt'
  action :create
end
...