Я создаю скрипт litle для запуска некоторой команды на всех контейнерах OpenVZ внутри узла.Запустить скрипт для каждой строки файла
Я прочитал все идентификаторы контейнеров OpenVZ, и я запустил некоторые команды для всех из них.
Вместо в файле listvz.txt у меня есть много идентификаторов, команда работает только на первом, так что цикл не работает ...
Любая идея? Спасибо!
#! /bin/bash
export PATH="/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"
cat /dev/null > listvz.txt;
ls -r1 /vz/private > listvz.txt;
cat listvz.txt | while read line; do
echo FixMySQL in ${line}
vzctl exec ${line} /etc/init.d/mysql stop;
vzctl exec ${line} /etc/init.d/mysqld stop;
vzctl exec ${line} rm -rf /var/lib/mysql/mysql.sock;
vzctl exec ${line} /etc/init.d/mysql start;
vzctl exec ${line} /etc/init.d/mysqld start;
done
Результат когда я бегу:
[[email protected] ~]# sh mysql-check.sh
FixMySQL in 2168
/bin/bash: /etc/init.d/mysql: No such file or directory
/bin/bash: /etc/init.d/mysqld: No such file or directory
/bin/bash: /etc/init.d/mysql: No such file or directory
/bin/bash: /etc/init.d/mysqld: No such file or directory
[[email protected] ~]#
только работать на CTID 2168, но есть намного больше CTIDs на файл TXT ...
Исправлено!
cat listvz.txt | while read line; do
echo FixMySQL in ${line} </dev/null
vzctl exec ${line} /etc/init.d/mysqld stop </dev/null
vzctl exec ${line} rm -rf /var/lib/mysql/mysql.sock </dev/null
vzctl exec ${line} /etc/init.d/mysqld start </dev/null
done
Если вы решили свои собственные проблемы, вы должны ответить вы использовали этот вопрос самостоятельно, и принять этот ответ. – Carpetsmoker