cron does not write in the file

I just start with cron jobs and I wanted to start with an easy task. поверьте в file in my home folder with the output of the ifconfig. So I created test.sh, which I made it executable with the:

#!/bin/bash          
ifconfig > /home/myname/ipt

inside. When I run it from терминал it creates the file ipt which существуешь the output ifconfig.

To add the рукописный шрифт in my crontab I entered:

sudo crontab -e

and I added my рукописный шрифт like this:

* * * * * /home/myname/test.sh

and the first minute it creates the file ipt which существуешь an lock icon which is for read only and inside is empty.

There пахал two questions:

1st Why it is empty?

2nd Why it is read only file?

4
задан 18 December 2015 в 02:17

2 ответа

Попробуйте, что сказанный @heemayl, используйте полный путь в Вашем test.sh:

/sbin/ifconfig >/home/myname/ipt

Объяснение

На командной строке и запускающих скриптах, Вы делаете поэтому как Ваш пользователь, который имеет определенные возможности, такой как

  • наличие переменной $PATH включает /sbin/ смочь "знать", прося ifconfig относится к /sbin/ifconfig

Крон однако не является тем же точным пользователем как Вы

  • таким образом, когда крон пытается работать, он не знает где ifconfig
  • если, конечно, Вы не указываете точно где: /sbin/ifconfig

Эффект не знания, где программа, можно протестировать на себя, попытаться запустить программу, которая не существует на Вашей командной строке:

$ doesnotexist > ipt2
bash: doesnotexist: command not found

Заметьте когда Вы:

$ ls -lh ipt2
-rw-r--r-- 1 youruser youruser 0 Dec 17 14:48 ipt2

Это - a

  • 0-байтовый файл
  • только для чтения

Это - точно тот же результат, который Вы первоначально нашли с crontab, где он не знал что ifconfig приводя к созданию 0 байтов, файлу главным образом только для чтения.

Таким образом в кроне, помогите ему найти программу, просто дав ему полный путь, и, пока у Вас нет проблем разрешения, это должно работать.

1
ответ дан 1 December 2019 в 10:38

Ответ № 1:

файл был пуст, потому что я не дал полное имя команды благодаря @heemayl и Ответу @user454038

№ 2:

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

sudo crontab -e

, но я просто имел к созданному как пользователь без sudo

crontab -e

, Настолько рабочего как пользователь .sh, файл будет

/sbin/ifconfig > ipt

и crontab

* * * * * $HOME/test.sh

, и я использую переменную $HOME для моего пользователя снова.

, Таким образом, это создает файл, который я хотел без неправильных полномочий.

Спасибо всем за Вашу справку.

0
ответ дан 1 December 2019 в 10:38

Другие вопросы по тегам:

Похожие вопросы: