На недавнем дистрибутиве Linux ядро должно обеспечить физический размер сектора устройства, и partition/lvm/mkfs инструменты должны, автоматически выбрал выравнивание, таким образом, что это совместимо с физическим размером сектора (для лучшей производительности).
Например, в моей системе Debian:
# cat /sys/block/sdb/queue/physical_block_size
4096
# cat /sys/block/sdb/queue/logical_block_size
512
Обновление: Для проверки на поддержку ядра можно проверить если /sys
содержит упомянутые файлы, можно звонить fdisk -l
чтобы проверить, печатает ли это эту информацию (это должно), можно проверить спецификацию жесткого диска (доступный поставщиком), можно проверить журнал изменений и/или источник инструментов LVM. Большинство mkfs
команды предоставляют подробную возможность видеть, какой размер блока используется. Наконец, что не менее важно, можно просто сделать простой сравнительный тест - например, один без любого LVM (например, целый диск как устройство) и повторить его, когда установка LVM существует.
Если я понимаю правильно, это - то, что Вы хотите:
for FILE in *; do
gnuplot <<- EOF
set xlabel "Label"
set ylabel "Label2"
set title "Graph title"
set term png
set output "${FILE}.png"
plot "${FILE}" using 1:2:3:4 with errorbars
EOF
done
Это предполагает, что Ваши файлы - все в текущем каталоге. Вышеупомянутое является сценарием удара, который генерирует Ваши графики. Лично, я обычно пишу, gnuplot командный файл (назовите его, скажем, gnuplot_in
), с помощью сценария некоторой формы, с вышеупомянутыми командами для каждого файла и графика это использование gnuplot < gnuplot_in
.
Дать Вам пример, в Python:
#!/usr/bin/env python3
import glob
commands=open("gnuplot_in", 'w')
print("""set xlabel "Label"
set ylabel "Label2"
set term png""", file=commands)
for datafile in glob.iglob("Your_file_glob_pattern"):
# Here, you can tweak the output png file name.
print('set output "{output}.png"'.format( output=datafile ), file=commands )
print('plot "{file_name}" using 1:2:3:4 with errorbars title "Graph title"'.format( file_name = datafile ), file=commands)
commands.close()
где Your_file_glob_pattern
что-то, что описывает именование Ваших файлов данных, быть этим *
или *dat
. Вместо glob
модуль, можно использовать os
также, конечно. Независимо от того, что генерирует список имен файлов, действительно.
Решение Bash, использующее временный командный файл:
echo > gnuplot.in
for FILE in *; do
echo "set xlabel \"Label\"" >> gnuplot.in
echo "set ylabel \"Label2\"" >> gnuplot.in
echo "set term png" >> gnuplot.in
echo "set output \"${FILE}.png\" >> gnuplot.in
echo "plot \"${FILE}\" using 1:2:3:4 with errorbars title \"Graph title\"" >> gnuplot.in
done
gnuplot gnuplot.in
Это может помочь.
#set terminal postfile (These commented lines would be used to )
#set output "d1_plot.ps" (generate a postscript file. )
set title "Energy vs. Time for Sample Data"
set xlabel "Time"
set ylabel "Energy"
plot "d1.dat" with lines
pause -1 "Hit any key to continue"
Выполните файл сценария как gnuplot filename
.