Вместо установки профиля мне помогла установка PATH
. Некоторые команды были недоступны в моих сценариях cron, так как PATH
отличается.
ENVIRONMENT=prod
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
*/30 * * * * /opt/myscript1.sh
*/30 * * * * /opt/myscript2.sh
*/30 * * * * /opt/myscript3.sh
Мне помогла настройка PATH
с путем команд. Еще лучше, если вы можете использовать шаблон и дешаблонировать позже,
ENVIRONMENT={{ENVIRONMENT}}
PATH={{PATH}}
*/30 * * * * /opt/myscript1.sh
*/30 * * * * /opt/myscript2.sh
*/30 * * * * /opt/myscript3.sh
Передача переменных каждому элементу выглядит беспорядочно.
Вместо разбора вывода ifconfig (, который может даже не быть установлен по умолчанию ), вы должны просто установить переменную из содержимого данных /sys:
MACADDR=$(cat /sys/class/net/eth0/address)
Тогда вы можете просто
echo “HWADDR=$MACADDR” >> /etc/sysconfig/network-scripts/ifcfg-eth0
Предполагается, что у вас еще нет строки с HWADDR, в противном случае вам нужно будет использовать sed.
Вы можете получить MAC-адрес eth0 с помощью:
$ ifconfig eth0 | awk '/ether/ {print $2}'
где :ifconfig eth0
отображает только заданное сетевое устройство
awk '/ether/ {print $2}'
ищет «эфир» и печатает второй столбец в соответствующей строке
--
Что такое ifconfig -файл eth0 ?
изд :прежний $ ifconfig | awk '/^eth0/ {getline;print $2}'
был на самом деле правильным только для неподключенного eth0, поэтому правильный теперь выше.
Пробовал с помощью приведенной ниже команды, все сработало
k=`ifconfig -a |awk '/HWaddr/{print $NF}'`
sed -i "/HWADDR/s/=.*/=$k/g" /etc/sysconfig/network-scripts/ifcfg-eth0