Загрузите файл, связанный в MySQL DB, извлеките текст и вставьте в дб со сценарием удара?

Открытый System->Administration->Disk Utility, выберите свой жесткий диск из списка слева и затем нажмите SMART Data справа. Вы получите отчет о своем состоянии диска и ошибках.

Можно продолжить путем нажатия Run Self-test кнопка и запускается Extensive самопроверка. Ожидайте, пока это не закончено, и прочитайте итоговый отчет. Выполнение badblocks или e2fsck -c (от Вашего живого спасательного диска) в Ваших файловых системах отметит поврежденные кластеры, таким образом, они не будут использоваться ОС. Но если ошибочные счетчики продолжают повышаться ко времени, Ваш диск нуждается в замене как можно скорее. У Вас должно уже быть резервное копирование.

К сожалению, текущие недорогие диски так надежны, как гибкие диски были десятилетие назад. Хотя, будучи недорогим делает raid1 (зеркало) значительная опция для настольных систем также.

Править

Я думал, что Дисковая утилита была установлена по умолчанию в Ubuntu. Имя пакета gnome-disk-utility, таким образом, один способ установить его sudo apt-get install gnome-disk-utility. Получите ту же функциональность в командной строке с smartctl от smartmontools пакет.

EDIT2

Я забыл, что была ошибка с gnome-disk-utility создание отчетов о ложных предупреждениях. Я не знаю, фиксируется ли это уже, я никогда не испытывал его сам. Больше информации имея дело с дисковыми проблемами здесь.

2
29.09.2012, 13:48
1 ответ

Для сейфа необходимо посмотреть на сгенерированный, если код может быть введен.

В этой команде mysql -B -ss -uuser -ppassword -e "USE table; SELECT column FROM table WHERE pid='$i';", Вы знаете, что я - число между 1 и 5, таким образом, оно в порядке.

Но в той команде mysql -B -ss -uuser -ppassword -e "USE table; UPDATE table SET column = '${line:6}' WHERE pid = '$i';", Вы не можете быть уверены в $ {line:6}; можно предположить, что это содержит одинарную кавычку, в этом случае необходимо заменить двумя одинарными кавычками, можно также проверить, что длина является меньше, чем длина столбца в базе данных (давайте предположим здесь 255), или усеките данные, прежде, чем заменить кавычки.

#!/bin/bash
for (( i=1; i <= 5; i++))
do
  DBQUERY=`mysql -B -ss -uuser -ppassword -e "USE table; SELECT column FROM table WHERE pid='$i';"`
  if [[ $DBQUERY == *.pls ]] ;
  then
    wget -O tempfile.pls $DBQUERY
    while read line
    do
      if [[ $line == File1=* ]] ;
      then
        str=${line:6:255}
        str=${str//\'/''}
        mysql -B -ss -uuser -ppassword -e "USE table; UPDATE table SET column = '$str' WHERE pid = '$i';"
      fi
    done <tempfile.pls
  fi
done
1
27.01.2020, 22:23

Теги

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