Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание - [125]
Запуск сценария
Сценарий bulkrename принимает два строковых аргумента и имена файлов для переименования (которые могут содержать шаблонные символы). Если указаны недопустимые аргументы, выводится дружественное сообщение со справкой, как показано в листинге Б.2.
Результаты
Листинг Б.2. Запуск сценария bulkrename
>··$ ls ~/tmp/bulk
>··1_dave 2_dave 3_dave 4_dave
>··$ bulkrename
>··You need to supply a string to find and a string to replace
>··Usage: bulkrename −f find −r replace FILES_TO_RENAME*
>····-f The text to find in the filename
>····-r The replacement text for the new filename
>
>··Renamed file /Users/bperry/tmp/bulk/1_dave to /Users/bperry/tmp/bulk/1_brandon
>··Renamed file /Users/bperry/tmp/bulk/2_dave to /Users/bperry/tmp/bulk/2_brandon
>··Renamed file /Users/bperry/tmp/bulk/3_dave to /Users/bperry/tmp/bulk/3_brandon
>··Renamed file /Users/bperry/tmp/bulk/4_dave to /Users/bperry/tmp/bulk/4_brandon
>··$ ls ~/tmp/bulk
>··1_brandon 2_brandon 3_brandon 4_brandon
Файлы для переименования можно перечислить по отдельности или использовать шаблонный символ звездочки (*) в пути, как в примере команды
Усовершенствование сценария
Иногда возникает необходимость заменить текст в имени файла специальной строкой, например текущей датой или отметкой времени (timestamp), чтобы обозначить, когда они были переименованы, не указывая дату в аргументе −r. Для этого достаточно добавить в сценарий поддержку специальных лексем для замены при переименовании файлов. Например, лексемы %d или %t в строке замены можно было бы заменять текущей датой или отметкой времени, соответственно, в момент переименования файлов.
Специальные лексемы, подобные этим, могут упростить перемещение файлов с целью резервного копирования. Если вы добавите в cron задание, перемещающее определенные файлы с использованием динамических лексем, для которых подстановка значений будет выполняться автоматически, вам не придется обновлять задание cron, когда понадобится изменить дату в именах файлов.
№ 103. Массовое выполнение команд в многопроцессорной системе
Во времена, когда вышло первое издание этой книги, многоядерные или многопроцессорные системы были редкостью. В основном к таким системам относились серверы и большие ЭВМ. В наши дни большинство ноутбуков и настольных компьютеров оснащается многоядерными процессорами, позволяющими компьютерам решать несколько задач одновременно. Но некоторые программы не способны использовать дополнительные вычислительные ресурсы и выполняются только на одном ядре; чтобы задействовать несколько ядер, нужно запустить сразу несколько экземпляров программы.
Допустим, что у вас есть программа для преобразования изображений из одного формата в другой и вам требуется обработать большое количество файлов. Последовательное (поочередное, а не параллельное) преобразование всех файлов единственным процессом может занять много времени. Работа завершится намного быстрее, если разбить файлы между несколькими процессами, работающими параллельно.
Сценарий в листинге Б.3 демонстрирует, как распараллелить заданную команду по нескольким процессам, выполняющимся одновременно.
Если ваш компьютер оснащен одноядерным процессором или выбранная программа работает медленно по другим причинам, например из-за невысокой скорости доступа к жесткому диску, запуск сразу нескольких экземпляров программы только ухудшит производительность. Будьте осторожны, не запускайте слишком много процессов, так как это легко может застопорить маломощную систему. К счастью, даже Raspberry Pi имеет несколько ядер!
Код
Листинг Б.3. Сценарий bulkrun
>··#!/bin/bash
>··# bulkrun — выполняет обход файлов в каталоге и запускает несколько
>··#·· процессов для их одновременной обработки.
>··printHelp()
>··{
>····echo "Usage: $0 −p 3 −i inputDirectory/ −x \"command −to run/\""
>
>
>····echo −e "\t-x The command to run on the chosen files"
>····exit 1
>··}
>··while getopts "p: x: i: " opt
>··do
>····case "$opt" in
>······p) procs="$OPTARG"····;;
>······x) command="$OPTARG"··;;
>······i) inputdir="$OPTARG";;
>······?) printHelp··········;;
>····esac
>··done
>··if [[-z $procs || −z $command || −z $inputdir]]
>··then
>····echo "Invalid arguments"
>····printHelp
>··fi
>··total=$(ls $inputdir | wc −l)
>··files="$(ls −Sr $inputdir)"
>··for k in $(seq 1 $procs $total)
>··do
>····for i in $(seq 0 $procs)
>····do
>······if [[$((i+k)) −gt $total]]
>······then
>········wait
>········exit 0
>······fi
>······file=$(echo "$files" | sed $(expr $i + $k)"q;d")
>······echo "Running $command $inputdir/$file"
>······$command "$inputdir/$file"&
>····done
>····wait
>··done
Как это работает
Сценарий bulkrun принимает три аргумента: максимальное количество процессов, действующих в каждый конкретный момент времени
, каталог с файлами для обработки и команду для запуска (в конец которой добавляется имя файла для обработки)Применение виртуальных машин дает различным категориям пользователей — от начинающих до IT-специалистов — множество преимуществ. Это и повышенная безопасность работы, и простота развертывания новых платформ, и снижение стоимости владения. И потому не случайно сегодня виртуальные машины переживают второе рождение.В книге рассмотрены три наиболее популярных на сегодняшний день инструмента, предназначенных для создания виртуальных машин и управления ими: Virtual PC 2004 компании Microsoft, VMware Workstation от компании VMware и относительно «свежий» продукт — Parallels Workstation, созданный в компании Parallels.
Книга содержит подробные сведения о таких недокументированных или малоизвестных возможностях Windows XP, как принципы работы с программами rundll32.exe и regsvr32.exe, написание скриптов сервера сценариев Windows и создание INF-файлов. В ней приведено описание оснасток, изложены принципы работы с консолью управления mmc.exe и параметрами реестра, которые изменяются с ее помощью. Кроме того, рассмотрено большое количество средств, позволяющих выполнить тонкую настройку Windows XP.Эта книга предназначена для опытных пользователей и администраторов, которым интересно узнать о нестандартных возможностях Windows.
Реестр Windows является важной частью операционной системы, во многом определяющей ее работу. Изучив приведенный в этой книге материал, вы научитесь редактировать реестр Windows Vista по своему усмотрению, а также освоите многочисленные приемы оптимизации содержащихся в нем настроек операционной системы.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Iptables Tutorial 1.1.19Автор: (C) Oskar AndreassonCopyright (C) 2001-2002 by Oskar AndreassonПеревод: (C) Андрей КиселевПоследнюю версию документа можно получить по адресу: http://iptables-tutorial.frozentux.netfb2-документ отформатирован с использованием большого количества тегов и . Чтобы в «читалке» (в частности, Haali Reader) текст выглядел «красиво», настройте свойства соотвествующих стилей (emphasis и strong), изменив, например, их цвета или начертания. (прим. автора fb2-документа)
Курс лекций, включенных в брошюру, знакомит читателя с популярными свободными программами и системами, полезными при преподавании информатики в средней школе. В обзор вошли основы открытых операционных систем, сведения о пакете «офисных» программ OpenOffice.org, коммуникационном пакете Mozilla, графическом редакторе GIMP, современных графических средах GNOME и KDE и других программах.Для преподавателей информатики и методистов, а также для студентов и аспирантов соответствующих специальностей.© 2002-3, Максим Отставнов.© 2002, Андрей Добровольский (раздел 3.1).Использован текст лекций, публиковавшихся автором в приложении к газете «Первое сентября» «Информатика» (http://inf.1september.ru) в 2002-3 г., материалы брошюры «Прикладные свободные программы в школе» (М.: 2003 г.), а также фрагменты статей, ранее публиковавшихся в журналах «Компьютерра» и «Домашний компьютер».Материалы, представленные в этой книге, также доступны в Интернет на странице www.otstavnov.com/fsft на условиях Свободной лицензии ГНУ на документацию (GNU FDL)