Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Вопросы по Crontab: создание,расположение, запуск программ  (Прочитано 7440 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн хейхо

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Читаю гугл про cron и crontab.

-Сделал: myvideo@serv:~$ crontab -eВ первый раз предложили выбрать редактор из списка. Так как полный ноль, выбрал по рекомендации Ubuntu какой-то GNU nano.
Затем закрыл редактор
-и сделал: myvideo@serv:~$ crontab -rПишет no crontab for myvideo

Вопросы:
1. Так понял, что ключ "е" создает crontab-файл с названием myvideo, под которым я набрал эту команду, и где-то в папке пользователя myvideo. Но из "no crontab for myvideo" следует, что файла не создано. Создано или не создано? :)
2. Пробовал пару дней назад, поэтому забыл - может быть я всё же после crontab указал название файла:( В гугле нахожу противоречивую инфу: то надо указывать, то просто crontab -e.
3. Как создать\пересоздать crontab-файл?
4. Читал по форумам, что нужно 2 crontab-файла создать. Первый - с расписанием, а во втором прописать какие-то переменные окружения и sh. Это так или просто бывают случаи, когда 2 файла нужно?
« Последнее редактирование: 19 Май 2014, 14:41:19 от хейхо »

Оффлайн linuxoproblemi

  • Любитель
  • *
  • Сообщений: 80
    • Просмотр профиля
хейхо,
1. Файлы хранятся в /var/spool/cron/crontabs
2. Файл создаётся с именем пользователя. Ничего создавать самому не надо.
3. crontab -e он сам сделает всё, что ему надо. Вы просто допишите в конец ваши задачи.
4. Вы читали про запуск скриптов по крону. Имеется в виду, что в крон нужно прописать .sh скрипт, а в скрипте уже выполнять свои задачи. А не писать тело скрипта в крон.

Оффлайн хейхо

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
1. Файлы хранятся в /var/spool/cron/crontabs
Нашёл, спасибо. Правда в саму папку зайти нельзя - прав нет; Ubuntu не личная). В разных источниках по разному. В одном, например, писали про /var/cron/tabs. В "var" папки "cron" не нашёл.

Имеется в виду, что в крон нужно прописать .sh скрипт, а в скрипте уже выполнять свои задачи.
Нашёл такой пример: http://www.codenet.ru/webmast/php/cron.php

Цитировать
1.Создаем временный файл /home/user/test содержимое файла test такое:

SHELL=/bin/bash
MAILTO=user
0-59 * * * * /home/user/mail

2. Запускаем в терминале команду crontab /home/user/test
Все. После этого в каталоге /var/spool/cron будет создан файл "user" примерно с таким содержимым

# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/home/user/test installed on Mon Mar 29 02:31:34 2004)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
SHELL=/bin/bash
MAILTO=user
0-59 * * * * /home/user/mail

Вы говорите, что ничего не нужно, только (1)открыть кронтаб-файл, дописать расписание и путь к .sh-файлу, и (2)написать сам .sh-файл. Запутался.

Оффлайн SergeyIT

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 4316
  • Все по палатам!
    • Просмотр профиля
Извините, я все еще учусь

Оффлайн linuxoproblemi

  • Любитель
  • *
  • Сообщений: 80
    • Просмотр профиля
хейхо,
Цитировать
в саму папку зайти нельзя - прав нет; Ubuntu не личная
Это вам надо какой-нибудь гайд новичка прочитать. В такие папки надо от рута ходить через команду sudo.
Да и с кроном у вас способ странный, сходите по ссылке SergeyIT.

Оффлайн хейхо

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Прочитал по ссылке. Переменные окружения пишутся в том же файле, где и расписание, но в моём кронтабе этого нет - пустой файл со строкой комментария: # m h dom mon dow command. Это нормально?

Делаю:
crontab -eВ файл добавляю, чтобы проверить, вывод в терминал каждую минуту:
*/1 * * * * echo "executing"Ничего не происходит. Либо выводит не в терминал, либо надо добавить какую-нибудь переменную окружения.
« Последнее редактирование: 21 Май 2014, 16:44:20 от хейхо »

Оффлайн linuxoproblemi

  • Любитель
  • *
  • Сообщений: 80
    • Просмотр профиля
хейхо,
Ой какие странные потребности у вас. Крон никак не может узнать в какой терминал вы хотите сообщение, а их может быть любое количество.
Если вы хотите видеть вывод крона, могу предложить перенаправить вывод в файл.
На пример такое задание cron:
* * * * * /path/to/script.sh > /path/to/file.log 2>&1Каждую минуту будет выполняться /path/to/script.sh, а его вывод будет писаться в /path/to/file.log
А в терминале выполняем
tail -f /path/to/file.logИ каждую минуту будем видеть в терминале что происходит.

Оффлайн ALiEN175

  • Старожил
  • *
  • Сообщений: 2220
  • X-9000SC
    • Просмотр профиля
хейхо,
*/1 * * * * /usr/bin/echo "executing `date`" >> /home/$USER/test
В домашней папке увидите файл test, в него будет записываться вывод команды
Благодарности на Yandex 41001488642430. Cпасибо.

Оффлайн S.D. aka Xvost

  • Активист
  • *
  • Сообщений: 354
    • Просмотр профиля
    • Пост Ворскла
00 12 * * * aplay /home/xvost/.program_files/SClock/12:00.wav # JOB_ID_14
Файл проигрывается по расписанию, но только если не проигрывается файл музыки или видео. При этом эта же команда ч/з терминал спокойно воспроизводит звук при работающих проигрывателях. Вопрос: какой ключ надо добавить, что бы и ч/з cron проигрывалось в любом случае?
Ubuntu 18.10; Intel Celeron CPU B820 1.70GHz×2; Intel® Sandybridge Mobile; 4 Гб ОЗУ
----
Пост Ворскла | «Об’єктив»

Оффлайн ALiEN175

  • Старожил
  • *
  • Сообщений: 2220
  • X-9000SC
    • Просмотр профиля
S.D. aka Xvost,
экранировать надо, у вас спецсимволы в имени файла
00 12 * * * aplay '/home/xvost/.program_files/SClock/12:00.wav' # JOB_ID_14
Благодарности на Yandex 41001488642430. Cпасибо.

Оффлайн S.D. aka Xvost

  • Активист
  • *
  • Сообщений: 354
    • Просмотр профиля
    • Пост Ворскла
Вы меня не поняли. Задание выполняется и без экранирования. Но только если не работает устройство (аудиоплеер, видеоплеер, флеш-плеер в браузере) использующее звук. Вот и задача: как заставить задание выполняться при работающем устройстве, воспроизводящем звук?

На всякий случай: вариант с экранирование попробовал, желаемого результата нет.
Ubuntu 18.10; Intel Celeron CPU B820 1.70GHz×2; Intel® Sandybridge Mobile; 4 Гб ОЗУ
----
Пост Ворскла | «Об’єктив»

Оффлайн F12

  • Старожил
  • *
  • Сообщений: 1842
    • Просмотр профиля
хейхо,
чтоб не заморачиваться с командами в терминале, установи в Центре приложений gnome-schedule - GUI для настройки пользовательского cron (автоматического выполнения задач) в GNOME ::)

Оффлайн ALiEN175

  • Старожил
  • *
  • Сообщений: 2220
  • X-9000SC
    • Просмотр профиля
S.D. aka Xvost,
pulseaudio установлен?
А вообще, гляньте syslog - чего там по задаче пишет, либо сделайте так:
00 12 * * * aplay '/home/xvost/.program_files/SClock/12:00.wav' >> /home/xvost/cron.log 2>&1 и смотрите в домашнем кататалоге cron.log, чего там не так
Благодарности на Yandex 41001488642430. Cпасибо.

Оффлайн S.D. aka Xvost

  • Активист
  • *
  • Сообщений: 354
    • Просмотр профиля
    • Пост Ворскла
Сделал тестовое задание, при проигрывающемся ч/з проигрыватель треке лог:
Програвання WAVE '/home/xvost/.program_files/SClock/12:00.wav' : Signed 16 bit Little Endian, Частота 22050 Гц, МоноПроигрывания файла из задания по прежнему нет. Файл проигрывается спустя время после паузы или остановки трека на проигрывателе. Впечатление, что происходит ожидание, когда канал будет полностью свободен. Как от этого ожидания избавиться?
Ubuntu 18.10; Intel Celeron CPU B820 1.70GHz×2; Intel® Sandybridge Mobile; 4 Гб ОЗУ
----
Пост Ворскла | «Об’єктив»

Оффлайн ALiEN175

  • Старожил
  • *
  • Сообщений: 2220
  • X-9000SC
    • Просмотр профиля
ну если так, скорее что-то в настройках пульса или алсы
попробуйте использовать вместо aplay что-то другое, mplayer например
и покажите весь крон
crontab -l 
« Последнее редактирование: 26 Сентябрь 2015, 17:35:43 от ALiEN175 »
Благодарности на Yandex 41001488642430. Cпасибо.

 

Страница сгенерирована за 0.07 секунд. Запросов: 24.