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?
Попробуйте, что сказанный @heemayl, используйте полный путь в Вашем test.sh
:
/sbin/ifconfig >/home/myname/ipt
На командной строке и запускающих скриптах, Вы делаете поэтому как Ваш пользователь, который имеет определенные возможности, такой как
/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
Это - точно тот же результат, который Вы первоначально нашли с crontab, где он не знал что ifconfig
приводя к созданию 0 байтов, файлу главным образом только для чтения.
Таким образом в кроне, помогите ему найти программу, просто дав ему полный путь, и, пока у Вас нет проблем разрешения, это должно работать.
Ответ № 1:
файл был пуст, потому что я не дал полное имя команды благодаря @heemayl и Ответу @user454038
№ 2:
файл был только для чтения, потому что я создал cronjob как корень, и я пытался открыть его как пользователь
sudo crontab -e
, но я просто имел к созданному как пользователь без sudo
crontab -e
, Настолько рабочего как пользователь .sh
, файл будет
/sbin/ifconfig > ipt
и crontab
* * * * * $HOME/test.sh
, и я использую переменную $HOME
для моего пользователя снова.
, Таким образом, это создает файл, который я хотел без неправильных полномочий.
Спасибо всем за Вашу справку.