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


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Запуск баша кроном.  (Прочитано 1340 раз)

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

Оффлайн FrankiAm

  • Автор темы
  • Активист
  • *
  • Сообщений: 268
    • Просмотр профиля
Запуск баша кроном.
« : 23 Августа 2011, 00:20:00 »
Задача (казалось бы простая):
записать в текстовый файл свой айпишник.
Решение:
создаем баш
#!/bin/bash
ifconfig eth1|grep "inet addr"|awk '{print $2}'|tr -d "addr:">/var/www/stat/data/lan;
Пробуем в терминале:
./bash.shВ результате получаем нужный файл в нужном месте с заветным айпишником.
Идем дальше. Айпишник нужно получать каждый час. Пишем в кроне:
~/./bash.shи видим... пустой файл.
Почему файл пустым оказывается?
1. Sempron 3000+ (старенький, но работает :)) + Ubuntu 9.04
2. Dell Inspiron N5110 (i3-2350, HD3000 + gt525m 1Gb, 4Gb, 500Gb) + Ubuntu 13.04.

Оффлайн Дмитрий Бо

  • Погонщик серверов
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 3549
  • Я не техподдержка, я за порядком слежу
    • Просмотр профиля
Re: Запуск баша кроном.
« Ответ #1 : 23 Августа 2011, 02:05:17 »
~/./bash.sh
Напиши полный путь к скрипту вместо этого.

Оффлайн FrankiAm

  • Автор темы
  • Активист
  • *
  • Сообщений: 268
    • Просмотр профиля
Re: Запуск баша кроном.
« Ответ #2 : 23 Августа 2011, 02:42:38 »
Да нет, путь тут не при делах (пробовал - сути дела это не меняет).
Получается, что баш как-то "на половину" работает. Файл он создает, но ничего туда не записывает. Мистика прям какая-то...
1. Sempron 3000+ (старенький, но работает :)) + Ubuntu 9.04
2. Dell Inspiron N5110 (i3-2350, HD3000 + gt525m 1Gb, 4Gb, 500Gb) + Ubuntu 13.04.

Оффлайн thunderamur

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6846
    • Просмотр профиля
Re: Запуск баша кроном.
« Ответ #3 : 23 Августа 2011, 03:00:19 »
подтверждаю.
и у меня, также как и у ТС, не хватает знаний, чтобы понять, что сделано неправильно.

Оффлайн Protopopulus

  • Старожил
  • *
  • Сообщений: 1690
  • А чего вы так смотрите?..
    • Просмотр профиля
Re: Запуск баша кроном.
« Ответ #4 : 23 Августа 2011, 03:26:21 »
sudo nano /usr/bin/my-ip#!/bin/bash
echo `ifconfig | grep 'inet addr' | sed 's/inet addr://' | awk '{print $1}'` > "$1"
exit 0
sudo chmod +x /usr/bin/my-ip
sudo nano /etc/crontab
0 * * * * root my-ip /path/to_file
У меня работает.
« Последнее редактирование: 23 Августа 2011, 03:29:04 от Protopopulus »
Если ты владеешь знаниями, то и знания владеют тобой. (с) Protopopulus

Оффлайн FrankiAm

  • Автор темы
  • Активист
  • *
  • Сообщений: 268
    • Просмотр профиля
Re: Запуск баша кроном.
« Ответ #5 : 23 Августа 2011, 04:51:06 »
И вот к какому странному выводу мы пришли:
работает и
#!/bin/bash
echo `ifconfig | grep 'inet addr' | sed 's/inet addr://' | awk '{print $1}'` > "$1"
exit 0
и даже
#!/bin/bash
ifconfig eth1|grep "inet addr"|awk '{print $2}'|tr -d "addr:">/var/www/stat/data/lan;
exit 0
НО... только если прописать ручками в crontab
* * * * * franki ./bash.sh /home/franki/а вот если использовать Gnome Schedule - то фиг вам. И в первом и во втором случае - пустой файл.
Чудеса какие-то. Это чего, такие глюки Gnome Schedule? Вроде я за ним раньше такого не замечал...
1. Sempron 3000+ (старенький, но работает :)) + Ubuntu 9.04
2. Dell Inspiron N5110 (i3-2350, HD3000 + gt525m 1Gb, 4Gb, 500Gb) + Ubuntu 13.04.

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Запуск баша кроном.
« Ответ #6 : 23 Августа 2011, 06:06:07 »
просто положить свой скрипт в /etc/cron.hourly/ уже не круто?

Оффлайн FrankiAm

  • Автор темы
  • Активист
  • *
  • Сообщений: 268
    • Просмотр профиля
Re: Запуск баша кроном.
« Ответ #7 : 23 Августа 2011, 06:29:17 »
Вопрос был не в том, как заставить работать. А в том, почему не работает именно так...
1. Sempron 3000+ (старенький, но работает :)) + Ubuntu 9.04
2. Dell Inspiron N5110 (i3-2350, HD3000 + gt525m 1Gb, 4Gb, 500Gb) + Ubuntu 13.04.

Оффлайн acehd

  • Любитель
  • *
  • Сообщений: 72
    • Просмотр профиля
Re: Запуск баша кроном.
« Ответ #8 : 23 Августа 2011, 06:36:25 »
Пробуй перенаправление вывода >>
И так далее обратно по команде, пока не будет найден виновник.

Оффлайн favt

  • Новичок
  • *
  • Сообщений: 39
    • Просмотр профиля
Re: Запуск баша кроном.
« Ответ #9 : 23 Августа 2011, 12:37:48 »
Наведу на правильную мысль: "переменные окружения".  :coolsmiley:
П.С. в частности $PATH

Оффлайн FrankiAm

  • Автор темы
  • Активист
  • *
  • Сообщений: 268
    • Просмотр профиля
Re: Запуск баша кроном.
« Ответ #10 : 23 Августа 2011, 13:31:43 »
При чем тут вообще переменные?
1. Sempron 3000+ (старенький, но работает :)) + Ubuntu 9.04
2. Dell Inspiron N5110 (i3-2350, HD3000 + gt525m 1Gb, 4Gb, 500Gb) + Ubuntu 13.04.

ALiEN175

  • Гость
Re: Запуск баша кроном.
« Ответ #11 : 23 Августа 2011, 13:41:23 »
Цитировать
При чем тут вообще переменные?

иногда крон не знает команды, допустим, grep - потому что не указаны переменные PATH. (никогда не сталкивался с таким :) )

в таком случае, либо явно указывать PATH, либо прописывать полный путь до команд. (/usr/bin/grep)

Оффлайн FrankiAm

  • Автор темы
  • Активист
  • *
  • Сообщений: 268
    • Просмотр профиля
Re: Запуск баша кроном.
« Ответ #12 : 23 Августа 2011, 14:25:38 »
Сомнительно.
grep (да и вообще все команды с этой строчки) перевариваются нормально. А вот именно в такой связке - не хочет.
Так что явный косяк Gnome Schedule...
1. Sempron 3000+ (старенький, но работает :)) + Ubuntu 9.04
2. Dell Inspiron N5110 (i3-2350, HD3000 + gt525m 1Gb, 4Gb, 500Gb) + Ubuntu 13.04.

Оффлайн Дмитрий Бо

  • Погонщик серверов
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 3549
  • Я не техподдержка, я за порядком слежу
    • Просмотр профиля
Re: Запуск баша кроном.
« Ответ #13 : 23 Августа 2011, 14:35:26 »
> Gnome Schedule
это что? оно от пользователя запускает или от рута?

> * * * * * franki ./bash.sh /home/franki/
И снова здравствуйте. Используй абсолютные пути.

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Запуск баша кроном.
« Ответ #14 : 23 Августа 2011, 15:04:44 »
$ sudo grep -v '^#\|^$' /var/spool/cron/crontabs/$USER
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
* * * * * /home/admin/ip.sh

$ tail /home/admin/ip.*
==> /home/admin/ip.log <==
10.10.28.10
10.10.28.10
10.10.28.10

==> /home/admin/ip.sh <==
#!/bin/bash

ifconfig eth0 | awk '/inet /{print substr($2,6)}' >>/home/admin/ip.log

УМВР, ЧЯДНТ?

 

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