Состояние сна просто указывает на неактивное соединение. Это - клиент, который соединен, но не выполняющий запросов.
Я предложил бы проверить, что Ваше приложение закрывает любые неиспользованные обсуждения MySQL, после того как оно закончилось с ними, даже если Вы не используете постоянные соединения.
Неактивные соединения могут быть "управляемой" стороной сервера с переменной wait_timeout
. Но Вы - более обеспеченное нахождение первопричины проблемы.
Это - больше комментария и meta наблюдение относительно способа, которым работает этот форум, но я чувствую довольно сильно, что нужно указать более громко, чем если бы я просто оставил комментарий в ответе rudedog. Это - также комментарий, направленный больше на людей, у которых может быть проблема, подобная вопросу David Dean, но не идентичные.
Легко сделать огромную сумму повреждения с рекурсивными операциями, которые переименовывают файлы. Позвольте мне повторить это, потому что это очень важно. Можно уничтожить огромный объем данных очень очень очень быстро с рекурсивными операциями, которые переименовывают файлы. Можно быстро представить полностью абсолютно неприменимую систему. Можно удалить 99% данных очень быстро. Такие действия должны быть сделаны очень тщательно и с длительным размышлением, резервными копиями и тестовыми прогонами.
Я очень опасаюсь ответа на этот конкретный вопрос, который полагается на несколько определенных подразумеваемых предположений:
Я - совершенно удобные вещи выполнения, которые являются ярлыками. Я пытаюсь понять, однако, что что-то - ярлык и каковы ограничения такого ярлыка, так, чтобы я знал, когда я должен запустить всегда корректную программу или в 10,000 раз быстрее, но сбои в некотором ярлыке пограничных случаев.
Короче говоря - вышеупомянутое использование сценария переименовывает, на 100% разумно в 90% случаев. 100%, корректных в 100% решения для случаев, на самом деле немного сложны и требуют некоторого ума имея дело с конфликтами пространства имен.
Но, как я сказал прежде, быть очень осторожным с рекурсивными операциями файла, особенно если они только munge метаданные, такие как полномочия или имена файлов. Они являются быстрыми и трудными инвертировать, не идя в резервные копии...
Вот пример того, как записать "переименовать" команду в ударе или ksh или некоторой другой оболочке modernish, которая "набрала". Давайте назовем этот сценарий/tmp/squash
#!/usr/local/bin/pdksh
# use some shell that supports typeset such as ksh, pdksh, or bash
# call this script from "xargs -0" and feed it with "find -print0"
typeset -l targetname || { echo "This shell doesn't support typeset!" >&2 ; exit 1 ; }
for file
do
count=""
target="$file"
targetpath="${target%/*}/"
targetname="${target##*/}"
if
[[ "$file" == "$targetpath$targetname" ]] || [[ "$file" == . ]]
then
:
else
while
test -e "$targetpath/$targetname""$count"
do
count=$((${count:-0}+1))
done
echo "renaming $file to $targetpath$targetname$count" >&2
mv -n "$file" "$targetpath$targetname$count"
fi
done
Теперь, можно выполнить следующие две команды и иметь файлы все раздавленные и не иметь любой перезаписанный файл.
find /path/to/files -type f -print0 | xargs -0 /tmp/squash
find /path/to/files -type d -depth -print0 | xargs -0 /tmp/squash
И я делаю предположения, что рассматриваемые каталоги не будут иметь материала помещенным в них или материал переименованный, в то время как я запускаю программу.
Я подчинюсь другим для ответа, но - тип f и - тип d как аргументы в пользу находки возвратит файлы и каталоги, соответственно. Если Вы хотели изменить файлы сначала, то каталоги... затем изменяют файлы сначала и затем каталоги.
-depth
опцияfind
. – Paused until further notice. 26 November 2009 в 08:50-print0
и его находящаяся во власти пространством обработка имени файла. – Steve Schnepp 26 November 2009 в 10:58