Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Сообщения: 1862
Благодарности: 132

Профиль | Сайт | Отправить PM | Цитировать


Вложения
Тип файла: rar log.2007.03.08-23.07.46.rar
(9.3 Kb, 8 просмотров)

вот результат некоторой работы. критика приветствуется

PHP код: Выделить весь код

#!/bin/tcsh


# определение лог-файлов
mkdir 0777 /tmp/test/log
set filesuffix
=`date "+%Y.%m.%d-%H.%M.%S"`
set iostatlog="/tmp/test/log/log.$filesuffix.iostat.log"
set filelog="/tmp/test/log/log.$filesuffix.mkdir.log"
set tablelog="/tmp/test/log/log.$filesuffix.table.log"
# определение слайса
set slice=ad4s1a
set mount
="/mnt/ad41"
set start = `date +%s

echo 
"#######################################################" >> $filelog
date 
>> $filelog 

# создание виртуального диска 8 мб
mdconfig --t malloc -s 8m -u 3 > /dev/null
newfs 
/dev/md3 > /dev/null
mount 
/dev/md3 /mnt/test

# создание на виртуальном диске временных файлов для теста
set i=2
set e
=1025
while ( $i $e )
    
dd if=/dev/zero of=/mnt/test/original-$i bs=1024 count=$i >> /dev/null
    set i
=`expr $i \* 2`
end

# на всякий случай и на случай преждевременного прекращения работы скрипта
killall -c iostat &

### размер блока может быть равен = 2048, 4096,8192,16384
# установка параметров будущей фалйовой системы и создание файловой системы
set newfsparam="-b 16384"
newfs $newfsparam /dev/ad4s1a
echo "newfs $newfsparam" >> $filelog
# установка параметров монтирования файловой системы и её монтирование
set mountparam=""
mount $mountparam /dev/ad4s1a $mount
echo "mount $mountparam" >> $filelog

# создание подопытной директории
mkdir $mount/test 

# вывод конфигурации получившийся файловой системы
bsdlabel /dev/ad4s1 >> $filelog 

# запуск вывода расширенной отладочной информации
echo "#######################################################" >> $iostatlog
date 
>> $iostatlog
echo "iostat ad4" >> $filelog 
iostat 
--d ad4 -I 2  >> $iostatlog &

# вычисление размера в начале опыта
echo "size start"  >> $filelog
du 
-chs $mount >> $filelog 

echo " "  >> $filelog 
echo "mkdir"  >> $filelog 

# запуск вывода отладочной информации
iostat -d ad4 -I 2  >> $iostatlog &

# цикл формирующий директории с файлами
set i=2
set e
=1025
set startdir 
= `date +%s`
while ( 
$i $e )
    echo 
"====================== mkdir $i =======================" >> $iostatlog
    set startd 
= `date +%s`
    
    
set mkdirtime=`time /tmp/mkdir $mount $i`
    echo 
$mkdirtime >> $filelog

#    du -chs $mount >> $filelog     
    
set endd=`date +%s`
    
set durationd=`expr $endd - $startd`
    
    echo 
" Duration mkdir $i = " $durationd >> $filelog 
    
echo "====================== mkdir $i =======================" >> $iostatlog
    
echo "$i,$durationd" >> $tablelog
    
    set i
=`expr $i \* 2`
end

# вычисление общего времени затраченного на создание директорий
set enddir=`date +%s`
set durationdir=`expr $enddir - $startdir`
echo 
" Duration all mkdir=" $durationdir >> $filelog 

# подсчет получившегося размера после опыта
echo " "  >> $filelog 
echo "size end"  >> $filelog 
du 
-chs $mount >> $filelog 

echo " "  >> $filelog 
echo "copy"  >> $filelog 

# цикл копирующий получившиеся директорий с файлами на виртуальный диск
set i=2
set e
=1025
set startcopy 
= `date +%s`
while ( 
$i $e )
    echo 
"====================== copy  $i =======================" >> $iostatlog
    set startcopy 
= `date +%s`
    
    
set copytime=`time /tmp/copy $mount $i >> $filelog`
    echo 
$copytime >> $filelog
    
    set endcopy
=`date +%s`
    
set durationcopy=`expr $endcopy - $startcopy`
    
    echo 
" Duration copy $i =" $durationcopy >> $filelog 
    
echo "====================== copy  $i =======================" >> $iostatlog
    
echo "$i,$durationcopy" >> $tablelog
    set i
=`expr $i \* 2`
end

# вычисление общего времени затраченного на копирование
set endcopy=`date +%s`
set durationcopy=`expr $endcopy - $startcopy`
echo 
" Duration all copy =" $durationcopy >> $filelog 

# удаление всех файлов после опыта
echo " "  >> $filelog 
echo "rm -r " >> $filelog 
echo "====================== rm -r =======================" >> $iostatlog
set rmtime
=`time rm -r $mount/test >> $filelog`
echo 
$rmtime >> $filelog
echo "====================== rm -r =======================" >> $iostatlog

# размонтирование подопытной файловой системы
echo "umount " >> $filelog 
set unmounttime
=`time umount $mount >> $filelog`
echo 
$unmounttime >> $filelog

# размонтирование виртуального диска и его удаление 
umount /mnt/test
mdconfig 
--u 3

# прекращение команд iostat
killall -c iostat &

# вычисление общей продолжительности работы скрипта
set end=`date +%s`
set duration=`expr $end - $start`
echo 
" Duration =" $duration >> $filelog 

вот и образец отчета

-------
ДИЛЕТАНТ - это курьезный человек, который испытывает удовольствие делать то, чего не умеет.
AMD 4200+, MSI Neo2Platinum, 2Gb, ATI 9600, D-Link DWL-G510, FreeBSD 8.0, KDE 4.3.4


Последний раз редактировалось Igor_I, 08-03-2007 в 23:22.


Отправлено: 23:11, 08-03-2007 | #27