Неожиданное поведение дескриптора файла и / или потоков ввода-вывода после запуска sqlcmd с параметром -i (чтение sql из файла) в ksh создает бесконечный цикл

Вы не объяснили, что используете LVM на Centos. Я не думал, что вы можете расширить корневой раздел с помощью lvextend.Мое предложение: вы удалили некоторые неиспользуемые пакеты и очистили файлы журнала, а также сделали резервную копию всех файлов конфигурации.Вы можете освободить немного свободного места.gparted был высоким риском потерять корневой раздел.Миграция будет хорошим вариантом.

2
21.09.2016, 18:13
1 ответ

Как упоминал @meuh в комментариях, sqlcmd читал stdin , поэтому добавлялось исправил проблему. Проблема заключалась в том, что цикл while выполнял итерацию по stdin (ранее перенаправлялся из файла exec 0 <"$ {file}" ) и ] sqlcmd , который находится внутри , а попытался прочитать из stdin . Решением было заставить sqlcmd читать из / dev / null вместо stdin .

Исправление

exec 3<&0
exec 0<"${file}"
while read -r line || [[ -n ${line} ]]
do
    echo "${line}"
    sqlcmd -S svr -U usr -P pwd -i input_file </dev/null
done
exec 0<&3
exec 3<&-
echo "Script completed successfully!"
0
27.01.2020, 22:44

Теги

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