существует несколько подходов к этому. init сценарий, с помощью crontab и различные другие. Самый простой, по моему скромному мнению, должен использовать тэг @reboot
в crontab пользователя, который должен работать , запускаются Афина, запускаются
команда.
тэг @reboot
выполняет команду точно однажды после ваших загрузок компьютера. Использовать crontab-e-u
для помещения то, что следует в crontab пользователя по вашему выбору. То, что следует, - то, что необходимо поместить в crontab.
@reboot while [ "x`ps -ef|awk '$8 ~ /[:print:]*mysqld[:mysqld:]*/ { print $2 }'|wc -l`" == "x0" ]; do sleep 10 ; done && cd /your/directory && ./your_command
Это могла бы быть хорошая идея записать это в сценарий и место где-нибудь, вместо того, чтобы использовать ужасную остроту в вашем crontab. Идея позади все, что является: мы проверяем таблицу процессов каждые 10 секунд и если мы находим соответствие, т.е. существует процесс mysqld (или что-то тесно сходство его), мы выходим из цикла, изменяемся на каталог, где драгоценная команда, которая будет выполнена, является и затем выполняет команду в конце.
Другая опция состояла бы в том, чтобы записать init сценарий, который запускается после демона MySQL, но пример для этого потребовал бы содержания строки, начинающейся # chkconfig
вашего MySQL init сценарий.
Как насчет
cat FILEONE.pp | grep "host = $(cat FILETWO.yaml | grep '[0-9]:' | grep -v ip)"
Я думаю, это может работать так, как вам нужно:
for host in $(awk '{print $3}' FILEONE.pp | sed "s/,//"); do grep -q $host FILETWO.yaml || echo $host; done
Это распечатывает список хостов только в первом файле если их нет во втором файле.
awk
лучше всего подходит для этих вещей:
awk -F"[: ,]*" 'FNR==NR && /:$/ {a[$1]; next} $3 in a' f2 f1
просто петля через второй файл, хранящий имена хостов в массиве A []
. Затем, петлю через первую проверку файла, если 3-е поле находится в массиве.
Примечание -F »[:,] *«
используется для установки полевого сепаратора как :
, ,
или пробелы.
Учитывая эти образцы файлов:
$ cat f1
host = host1, ip = x.x.x.x
host = host2, ip = y.y.y.y
host = host3, ip = z.z.z.z
$ cat f2
host1:
ip: x.x.x.x
host3:
ip: x.x.x.x
См. Вывод:
$ awk -F"[: ,]*" 'FNR==NR && /:$/ {a[$1]; next} $3 in a' f2 f1
host = host1, ip = x.x.x.x
host = host3, ip = z.z.z.z