LINUX.ORG.RU

Сообщения vl72

 

восстановление удаленных файлов в ФС ext3

Форум — General

У меня Ubuntu Desktop 9.04, /dev/sdb1/ или /media/disk0/ это флешка FAT16
/dev/sda6/ - файл. cистема ext3 c файлами , монтируется в корень /

Подскажите, что нужно еще foremost для того, чтобы он начал работать?
Хочу восстановить некоторые удаленные файлы.
Программа ожидает ввод.
sudo foremost -T -t gif -v -i /dev/sdb1/ -o /media/disk0/empty/ -c /usr/local/etc/foremost.conf


Foremost version 1.5.7 by Jesse Kornblum, Kris Kendall, and Nick Mikus

Audit File



Foremost started at Sat Mar 5 00:12:57 2011

Invocation: foremost -T -t gif -v -i /dev/sdb1/ -o /media/disk0/empty/ -c /usr/local/etc/foremost.conf

Output directory: /media/disk0/empty_Sat_Mar__5_00_12_57_2011

Configuration file: /usr/local/etc/foremost.conf

Processing: stdin

|------------------------------------------------------------------

File: stdin

Start: Sat Mar 5 00:12:57 2011

Length: Unknown



Num    Name (bs=512)    Size    File Offset    Comment




******----------*

Попробовал
ext3grep
в man написано
Restoring all files from the ext3 partition/file /backup/sda1:

ext3grep --restore-all /backup/sda1

получил

vl@vl-desktop:~$ sudo ext3grep --restore-all /dev/sda6


Running ext3grep version 0.10.1

WARNING: I don't know what EXT3_FEATURE_COMPAT_EXT_ATTR is.

WARNING: EXT3_FEATURE_INCOMPAT_RECOVER is set. This either means that your partition is still mounted, and/or the file system is in an unclean state.

Number of groups: 884

Minimum / maximum journal block: 14418434 / 14451749

Loading journal descriptors... sorting... done

The oldest inode block that is still in the journal, appears to be from 1299239151 = Fri Mar 4 13:45:51 2011

Journal transaction 597177 wraps around, some data blocks might have been lost of this transaction.

Number of descriptors in journal: 29972; min / max sequence numbers: 595055 / 598351

Writing output to directory RESTORED_FILES/

Finding all blocks that might be directories.

D: block containing directory start, d: block containing more directory entries.

Each plus represents a directory start that references the same inode as a directory start that we found previously.



Searching group 0: DDdd

Searching group 1: ddd

Searching group 2: dddddddddd

Searching group 3: d

Searching group 4:

Searching group 5:

Searching group 6:

Searching group 7:

Searching group 8:

Searching group 9:

Searching group 10:

…..........
WARNING: extended directory at 14160392 has entries that appear to be directories, but their parent directory inode is not consistent! I can't make this decision for you. You will have to manually pick an inode for this block number. The inodes that I found are (although ALL could be wrong):

179873 (76 times)

183253 (1 time)

253457 (1 time)

Could not find an inode for extended directory at 14160392, disregarding it's contents.

Could not find an inode for extended directory at 14161952, disregarding it's contents.

Could not find an inode for extended directory at 14161953, disregarding it's contents.

Cannot find a directory block for inode 183678.

Cannot find a directory block for inode 2843767.

WARNING: extended directory at 14165291 has entries that appear to be directories, but their parent directory inode is not consistent! I can't make this decision for you. You will have to manually pick an inode for this block number. The inodes that I found are (although ALL could be wrong):

179873 (76 times)

183253 (1 time)

253457 (1 time)

Could not find an inode for extended directory at 14165291, disregarding it's contents.

Cannot find a directory block for inode 183712.

WARNING: extended directory at 14165297 has entries that appear to be directories, but their parent directory inode is not consistent! I can't make this decision for you. You will have to manually pick an inode for this block number. The inodes that I found are (although ALL could be wrong):

179873 (61 times)

260317 (1 time)

Could not find an inode for extended directory at 14165297, disregarding it's contents.

Cannot find a directory block for inode 183678.

Cannot find a directory block for inode 2843767.

WARNING: extended directory at 14165307 has entries that appear to be directories, but their parent directory inode is not consistent! I can't make this decision for you. You will have to manually pick an inode for this block number. The inodes that I found are (although ALL could be wrong):

179873 (76 times)

183253 (1 time)

253457 (1 time)

Could not find an inode for extended directory at 14165307, disregarding it's contents.

Cannot find a directory block for inode 183712.

WARNING: extended directory at 14165309 has entries that appear to be directories, but their parent directory inode is not consistent! I can't make this decision for you. You will have to manually pick an inode for this block number. The inodes that I found are (although ALL could be wrong):

Cannot find a directory block for inode 4039155.

WARNING: extended directory at 14421853 has entries that appear to be directories, but their parent directory inode is not consistent! I can't make this decision for you. You will have to manually pick an inode for this block number. The inodes that I found are (although ALL could be wrong):

3858572 (1 time)

3858610 (3 times)

3858767 (1 time)

3858915 (2 times)

Could not find an inode for extended directory at 14423642, disregarding it's contents.

Could not find an inode for extended directory at 14423646, disregarding it's contents.

Could not find an inode for extended directory at 14423649, disregarding it's contents.

Segmentation fault


Директория RESTORED_FILES в моей домашней папке создается, но она пуста.
Что не так?

vl72
()

Подскажите новичку - скрипт для оболочки BASH

Форум — Admin

1)   Подскажите, пожалуйста, как обрабатывать файлы в скрипте BASH, если имена этих файлов состоят из нескольких слов и содержат в себе пробелы. Файлов может и не быть в указанном месте.
Например, файл(ы) называе(ю)тся
   Скрипт для создания директории на диске.sh,
   Скрипт для создания файлов на диске.sh
и. т.п.
При выполнении скрипта

#!/bin/bash
cd $HOME
zraz=' Скрипт для создания*.sh'

if [ `ls $zraz | wc -l` -gt 0 ]
then
    echo 'УРЯЯЯ'
else
    echo 'НЕЕЕЕЕЕТ'
fi
появляется ругань когда нет файлов «Скрипт для создания*.sh»
ls: cannot access Скрипт\: No such file or directory
ls: cannot access для\: No such file or directory
ls: cannot access создания*.sh: No such file or directory


2) Какой командой (find, locate, ls), лучше производить поиск и вывод файлов для дальнейшей обработки в скрипте, чтобы можно с помощью переменных или других команд указать место поиска, образец для поиска и другие параметры?
Например, если известно, что файлы должны находиться в определенной директории и имеют что-то общее в имени или содержимом.
Если есть где-то примеры, пожалуйста, подскажите.

3) Какой командой можно узнать позицию искомого символа (подстроки) в строке с начала или с конца строки, а также длину строки (кол-во символов)?

4) Как можно создать командой mkdir папку, которая содержит пробелы в имени (состоит из нескольких слов) ?
Команда
d='fi\ se'; mkdir $d
создает 2 папки.
Как, вообще, можно обрабатывать папки имена которых состоят из нескольких слов (разделены пробелами)? Например, папки типа «папка с картинками_files», которые создает веб-броузер для веб-страниц на диске.

5) Какая команда позволяет дописывать (добавлять) в новую строку текстового файла данные в скрипте? Например есть цикл, проходит 10 итераций и в один и тот же текстовый файл дописывается в новую строку значение строчной переменной, т.е. будет всего 10 строк.

vl72
()

программа для автоматизации процесса поиска и замены текста в веб-страницах

Форум — Admin

Какая есть хорошая программа для автоматизации процесса поиска и замены текста в веб-страницах .htm?
Программа нужна по причине того, что *#*%# веб-броузер сохранил странички и каталоги на диск, но при открытии их броузером на другом ПК, он странички показывает “голые”, т.е. без картинок, хранящихся в связанной папке. Приходится открывать каждую страницу в BlueFish и править название каталога (абракадабракаталог_files) со всеми картинками на правильное, а не то, которое указал *#*%# веб-броузер.
Я так понимаю, что придется писать скрипт для Bash.
Как автоматизировать процесса поиска-замены текста в веб-страницах .htm, а именно написания названия файлов картинок и других элементов, так как они сохранены на диске в связанном каталоге, т.е. в таком же чередовании прописных и строчных литер, а то в Linux это критично?
Я немного попробовал что-то написать, но уперся в проблему присвоения переменной значения из файла.
Например, нужно присвоить переменной «i» результат выполнения команды
find -type f -name «*.htm*» -print | grep -c .htm или прочесть его из файла out
find -type f -name «*.htm*» -print | grep -c .htm > out ,
которая подсчитывает кол-во веб-страниц в указанном каталоге.
Далее начинается цикл обработки каждой страницы из этого каталога, т.е. как-то необходимо организовать поиск и замену в каждой странице, которая упоминается в отдельной строке файла out 'абракадабракаталог_files' на 'каталог_files'.
Необходимо искать каждое упоминание, например “%12%3E%3F%40%3Eс_files” в веб-странице «Вопрос.htm» и менять левую часть (название каталога) на «Вопрос_files».
Нужно построчно читать название каждой веб-страницы из файла out, присвоить переменной, далее отрезать хвостик .htm, заменить его на “название веб-страницы_files” открыть эту веб-страницу произвести поиск-замену и сохранить изменения.
Кто-то что-то может посоветовать? Какие команды (инструменты) использовать?

Количество *.htm файлов в папке /path подсчитывают команды
find /path -type f -name «*.htm*» -print | grep -c .htm
find /path -type f -name *.htm | wc -l
Нужно переменной, например list, присвоить результат выполнения хотя бы одной из них.
КАК ЭТО СДЕЛАТЬ?
Объясняю детально.
Например, у Вас в каталоге /path лежит 10 файлов *.htm и связанных с ними каталогов с картинками и т.п.
Вы хотите
получить список всех необходимых файлов благодаря
   ls /path *.htm > out-spisok
подсчитать кол-во файлов *.htm
   find /path -type f -name «*.htm*» -print | grep -c .htm ИЛИ
   find /path -type f -name *.htm | wc -l
присвоить переменной. например list ПОЛУЧЕННОЕ от одной из вышеуказанных команд значение (10)
   КАК??????????
организовать цикл обработки каждой *.htm страницы (файла) из этого каталога
   var=«1»
   # пока var меньше или равно переменной list (кол-ва веб страниц)
   while [ $var -le $list ]
   do
   5) …......
   9) …......
   var=$[$var+1]
   done

там, где …...... д.б.
присвоить переменной, например webfile 1-е (потом 2-е и т.д.) значение из списка out-spisok
   sed -n $var,+0p out-spisok
   КАК??????????
поиск 1-го значения '_files' в webfile
определение начала и конца 'абракадабракаталог_files' без '_files'
   В *.htm файле название каталога находится между =” и _files
   КАК??????????
присвоение переменной poisk 'абракадабракаталог'
   poisk = 'абракадабракаталог'
замена во всем файле webfile 'абракадабракаталог' на 'правильныйкаталог_files', где 'правильныйкаталог' (foldernew) совпадает с названием страницы и каталога на диске в папке /path и равно
   foldernew = $webfile (без '.htm') +'_files'
   sed s/$poisk/$foldernew/g $webfile > $webfile-out
конец цикла
Проблемы
Как в bash скрипте сделать, ЕСЛИ ЭТО ВОЗМОЖНО
присвоение переменной результата выполнения команды или последовательности команд (пайпа)
определение начала и конца искомого значения в тексте ('абракадабракаталог_files') и его «вырезание» и присвоение переменной

vl72
()

RSS подписка на новые темы