1

Я никогда раньше не пользовался кроном (и вообще я только осваиваю линкус)
У меня есть файл testcron.sh который пишет в файл  test.txt некую информацию

[a_ectb@AppServ f]$ cat testcron.sh
#! /bin/bash
now=$(date +"%T")
echo "$now проверка" >> test.txt

если его запустить, то он сработает (тут видно что сначала  test.txt пустой а потом содержит строку)

[a_ectb@AppServ f]$ cat test.txt
[a_ectb@AppServ f]$ ./testcron.sh
[a_ectb@AppServ f]$ cat test.txt
19:19:05 проверка
[a_ectb@AppServ f]$

скрипт лежит в папке /home/a_ectb/f

теперь пытаюсь запустить его через крон (чтобы он работал каждую минут)

добавил через команду crontab -e путь к своему скрипту
и теперь файл для крона для моего пользоваться стал выглядеть вот так

[a_ectb@AppServ f]$ cat /var/spool/cron/a_ectb
0-59 * * * * ~/f/testcron.sh

но вот я подождал несколько минут и по прежнему файл test.txt содержит только одну строчку
(ту которая добавилась при тестовом запуске скрипта )

[a_ectb@AppServ f]$ cat ~/f/test.txt
19:19:05 проверка
[a_ectb@AppServ f]$

Вопрос, что я делаю не так?

2

1. пробел лишний в sha-bang, нужно #!/bin/bash
2. в crontab не нужно 0-59, просто * * * * *, это значит "каждую минуту.
3. путь указывайте полностью, а не через ~. Т.е. /home/user/f/testcron.sh (используйте текстовый редактор вроде vim, который умеет имена файлов вставлять в текст, что-бы не ошибиться)

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

3

Я поменял кронтаб

[a_ectb@AppServ f]$ crontab -l
* * * * * /home/a_ectb/f/testcron.sh

и testcron.sh

[a_ectb@AppServ f]$ cat testcron.sh
#/bin/bash
now=$(date +"%T")
echo "$now проверка" >> test.txt

Подождал пару минут но все равно ничего не произошло

[a_ectb@AppServ f]$ cat test.txt
19:19:05 проверка

4

drBatty пишет:

используйте текстовый редактор вроде vim, который умеет имена файлов вставлять в текст, что-бы не ошибиться

я параллельно пытаюсь освоить vi пока что использую шпаргалку   (но надеюсь что скоро она мне не понабиться) подскажите пожалуйста комбинацию клавишей чтобы в vi вставлять путь к файлу

5

Faydaen пишет:

подскажите пожалуйста комбинацию клавишей чтобы в vi вставлять путь к файлу

в vi нету
в vim есть CTRL+X F

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

6

окей, попробую vim, а что с кроном то делать, ну хотя бы в какую сторону копать?

7

Faydaen пишет:

#/bin/bash

теперь восклицательный знак пропустил...

и chmod +x testcron.sh не забудь...

95% процентов проблем находятся между клавиатурой и стулом.

8

восклицательный знак добавил

#!/bin/bash
now=$(date +"%T")
echo "$now проверка" >> test.txt

chmod +x тоже не забыл

[a_ectb@AppServ f]$ ls -l testcron.sh
-rwxrwxr-x 1 a_ectb a_ectb 71 May 14 21:20 testcron.sh

9

все равно не работает

10

может быть у меня крон не запущен?

top - 21:30:13 up 219 days,  9:58,  2 users,  load average: 0.13, 0.05, 0.01
Tasks:  93 total,   2 running,  91 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   2058764k total,  1927092k used,   131672k free,   228596k buffers
Swap:  1048568k total,    85152k used,   963416k free,  1023240k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
    1 root      15   0 10372  580  548 S  0.0  0.0   0:11.33 init
    2 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 migration/0
    3 root      34  19     0    0    0 S  0.0  0.0   0:00.03 ksoftirqd/0
    4 root      10  -5     0    0    0 S  0.0  0.0   0:01.65 events/0
    5 root      10  -5     0    0    0 S  0.0  0.0   0:03.11 khelper
   22 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 kthread
   26 root      10  -5     0    0    0 S  0.0  0.0   0:00.61 kblockd/0
   27 root      20  -5     0    0    0 S  0.0  0.0   0:00.00 kacpid
  185 root      18  -5     0    0    0 S  0.0  0.0   0:00.00 cqueue/0
  188 root      18  -5     0    0    0 S  0.0  0.0   0:00.00 khubd
  190 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 kseriod
  260 root      15   0     0    0    0 S  0.0  0.0   0:00.01 khungtaskd
  263 root      10  -5     0    0    0 S  0.0  0.0   0:23.29 kswapd0
  264 root      18  -5     0    0    0 S  0.0  0.0   0:00.00 aio/0
  469 root      11  -5     0    0    0 S  0.0  0.0   0:00.00 kpsmoused
  500 root      10  -5     0    0    0 S  0.0  0.0   0:00.13 mpt_poll_0
  501 root      20  -5     0    0    0 S  0.0  0.0   0:00.00 mpt/0
  502 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 scsi_eh_0
  505 root      20  -5     0    0    0 S  0.0  0.0   0:00.00 ata/0
  506 root      20  -5     0    0    0 S  0.0  0.0   0:00.00 ata_aux
  511 root      20  -5     0    0    0 S  0.0  0.0   0:00.00 kstriped

Я нигде его в процессах не вижу

11

Faydaen пишет:

может быть у меня крон не запущен?

ps aux | grep cron

95% процентов проблем находятся между клавиатурой и стулом.

12

[a_ectb@AppServ f]$ ps aux | grep cron
root      3184  0.0  0.0  74836  1088 ?        Ss    2013   0:11 crond
a_ectb   24596  0.0  0.0  61200   744 pts/1    R+   21:34   0:00 grep cron

13

Запущен у вас cron, запущен.

$ chmod u+rwx,go+rx ~/testcron.sh

Это было сделано?

Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Arch Linux/Xfce/Xiaomi Mi Notebook Pro 15.6 | Slackware64-current/Xfce/Lenovo G580

14

[a_ectb@AppServ f]$ chmod u+rwx,go+rx ~/testcron.sh
chmod: cannot access `/home/a_ectb/testcron.sh': No such file or directory
[a_ectb@AppServ f]$ chmod u+rwx,go+rx ~/f/testcron.sh
[a_ectb@AppServ f]$ date +%T
21:41:09
[a_ectb@AppServ f]$ date +%T
21:41:11
[a_ectb@AppServ f]$ date +%T
21:41:12
[a_ectb@AppServ f]$ date +%T
21:42:02
[a_ectb@AppServ f]$ cat test.txt
19:19:05 проверка
[a_ectb@AppServ f]$

15 (14.05.2014 21:48:41 отредактировано Faydaen)

по прежнему одна строчка, которую я в самом начале была записанна когда я тестировал скрипт

16

может быть я как-то коряво в кронтаб процесс ввел?

[a_ectb@AppServ f]$ crontab -l
* * * * * /home/a_ectb/f/testcron.sh

17 (14.05.2014 22:13:04 отредактировано yars)

Faydaen, ну так не выполняйте бездумно данную мной команду. Тем более, мне откуда знать, где этот ваш testcron.sh лежит, внесите соответствующие коррективы, попробуйте еще раз. Ок, сделано, но после успешного выполнения команды вы второй раз ваш скрипт не запускали, вот и ничего нет нового в текстовом файле, до которого, кстати, тоже надо указать абсолютный путь в скрипте. Что говорит crontab -l?
И почитайте вот это.

Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Arch Linux/Xfce/Xiaomi Mi Notebook Pro 15.6 | Slackware64-current/Xfce/Lenovo G580

18

Faydaen пишет:

echo "$now проверка" >> test.txt

тут забыли _полный_ путь, например /tmp/test.txt
а то оно же в корень писать будет, а туда нельзя.

Faydaen пишет:

* * * * * /home/a_ectb/f/testcron.sh

правильно, если работает(от ююзера, НЕ от рута!)

 Консоль:
cd /
/home/a_ectb/f/testcron.sh


а вообще смените строку на

* * * * * /home/a_ectb/f/testcron.sh >>/tmp/cron.log 2>&1

подождите 2 минуты, и читайте /tmp/cron.log

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

19

drBatty пишет:

тут забыли _полный_ путь, например /tmp/test.txt

Спасибо, именно в этом и была причина..  только не в корень,  а в домашнюю папку...