Скрипт копирования нескольких LV

Однострочный скрипт копирования логических томов LV. Например для копирования дисков виртуальных машин.

Тестовый вариант отображает команду на экран:

# for VOL in "lv_vm3_disk0" "lv_server_fm-disk0" "lv_vm1_disk0" ; do echo -e "dd if=/dev/vg_vm/${VOL} of=/mnt/tmp1/${VOL} bs=2M iflag=direct oflag=direct" ; done
dd if=/dev/vg_vm/lv_vm3_disk0 of=/mnt/tmp1/lv_vm3_disk0 bs=2M iflag=direct oflag=direct
dd if=/dev/vg_vm/lv_server_fm-disk0 of=/mnt/tmp1/lv_server_fm-disk0 bs=2M iflag=direct oflag=direct
dd if=/dev/vg_vm/lv_vm1_disk0 of=/mnt/tmp1/lv_vm1_disk0 bs=2M iflag=direct oflag=direct

А это рабочий вариант:

# for VOL in "lv_vm3_disk0" "lv_server_fm-disk0" "lv_vm1_disk0" ; do dd if=/dev/vg_vm/${VOL} of=/mnt/tmp1/${VOL} bs=2M iflag=direct oflag=direct ; done
81920+0 records in
81920+0 records out
171798691840 bytes (172 GB) copied, 2433.05 s, 70.6 MB/s
75002+0 records in
75002+0 records out
157290594304 bytes (157 GB) copied, 2525.82 s, 62.3 MB/s
128000+0 records in
128000+0 records out
268435456000 bytes (268 GB) copied, 3628.6 s, 74.0 MB/s
Рекоментация!Так как копирование логических томов это длительная операция то такие команды лучше запускать в screen.

Как изменить разделитель полей команды ps

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

ps -eo "%p\t%a"

Для того чтобы вставить табуляцию в качестве разделителя нужно либо воспользоваться sed для замены \t на табуляцию или воспользоваться echo -e но удобнее немного изменить строку исползуя хак:

ps -eo "%p"$'\011'"%a"

В использовании команды есть одна непонятная особенность: чтобы аргумент %a вывел полные параметры, а не обрезал их по ширине, он должен быть использован в самом конце форматной строки. Если после него встретится хотя бы один символ включая пробел то ширина поля args будет ограничена. Поле будет обрезано. Мне не удалось заставить вывести полный аргумент никакими перенаправлениями в pipe или переменными COLUMNS как это описано в документации.

ОБЫЧНЫЕ AIX коды описаны ниже.

       CODE   NORMAL   HEADER
       %C     pcpu     %CPU
       %G     group    GROUP
       %P     ppid     PPID
       %U     user     USER
       %a     args     COMMAND
       %c     comm     COMMAND
       %g     rgroup   RGROUP
       %n     nice     NI
       %p     pid      PID
       %r     pgid     PGID
       %t     etime    ELAPSED
       %u     ruser    RUSER
       %x     time     TIME
       %y     tty      TTY
       %z     vsz      VSZ

Дата и время старта сервера

Команда uptime показывает время прошедшее с момента старта сервера. Когда мне для разбора логов потребовалось узнать время старта сервера я не нашёл способа получить время старта сервера например в формате YYYY-MM-DD HH:MM.

Вот результат работы uptime

$ uptime
 18:01:18 up 473 days,  6:56,  1 user,  load average: 0.08, 0.03, 0.00

Распарсим его и сформируем строку для команды date

$ uptime | sed -e 's/,//g' | awk '{split($5,time,":"); printf("-%s days -%s hours -%s minutes\n", $3, time[1], time[2])}'
-473 days -7 hours -02 minutes

И получим следующий однострочный скрипт

$ DAYSAGO=`uptime | sed -e 's/,//g' | awk '{split($5,time,":"); printf("-%s days -%s hours -%s minutes\n", $3, time[1], time[2])}'`; date --date="${DAYSAGO}" +"%Y-%m-%d %H:%M"
2014-01-10 11:05
Примечание От запуска к запуску скрипта время будет плавать на ± одну минуту. Это связано с тем, что uptime возвращает время без секунд.

Установка формата даты в Thunderbird

Mozilla-thunderbird-logo
Если в Linux установлена переменная LANG=”en_US.UTF-8″ то не смотря на региональные настройки системы Thunderbird отображает дату в американском формате MM.DD.YYYY. Сделать отображение даты корректным можно установкой переменной непосредственно перед запуском Thunderbird.

Для отображения даты в формате DD.MM.YYYY нужно установить переменную LC_TIME=”en_GB.utf8″

LC_TIME="en_GB.utf8" /usr/bin/thunderbird

А для формата YYYY-MM-DD установить LC_TIME=”en_DK.utf8″

LC_TIME="en_DK.utf8" /usr/bin/thunderbird

Для получения списка локалей можно воспользоваться командой locale с фильтрацией grep

$ locale -a | grep -i 'en_..\.utf8'

Если вы хотите изменить ярлык в KDE то воспользуйтесь командой kmenuedit которая имеет графический интерфейс.
Там необходимо найти ярлык который отвечает за почтовый клиент Thunderbird и задать команду LC_TIME=”en_GB.utf8″ /usr/bin/thunderbird %u

Источник

Отключение парковки ноутбучных дисков

Частая парковка головок ноутбучных шпиндельных накопителей на жёстких дисках приводит к износу механизма и преждевременной смерти диска. Чем больше значение SMART параметра Load_Cycle_Count тем ближе время вероятной кончины диска.

smartctl -A /dev/sda | grep 'Load_Cycle_Count'
193 Load_Cycle_Count        0x0012   098   098   000    Old_age   Always       -       21418

В старых версиях Fedora я это решал строчкой в init скрипте.
В новых использовал модуль. И итолько недавно мне подсказали решение для нормальной поддержки Hybernate и Suspend.
Continue reading Отключение парковки ноутбучных дисков

VNC X server на виртуальном DISPLAY:1

Версия дистрибутива используемого в этом примере

[root@vnc-host ~]# cat /etc/redhat-release 
Fedora release 16 (Verne)

Установка VNC сервера

[root@vnc-host ~]# yum -y install tigervnc-server

Continue reading VNC X server на виртуальном DISPLAY:1

Как из каталога web сервера загрузить все файлы

Если отбросить все декорации в виде index.html* файлов и ограничить скорость стягивания на уровне 1 мегабайта в секунду, использовать аутентификацию то это может выглядеть так:

wget -r --no-parent --no-directories --reject "index.html*" --limit-rate=1m --user=vasily --password=terkin http://youngblogger.hoster-ok.com/usersdata/vaslily/

Как запретить автообновление Adobe Reader и удалить его сервис

При инсталяции Adobe Acrobat Reader в системные сервисы, в святая святых, втихаря устанавливается AdobeARMservice. Неприятно, что компания Adobe не оставляет пользователям права выбора поставить сервис автообновления или нет. А ведь такая программа получает самые высокие привилегии работы в системе и несёт в себе две реальные угрозы.

  • когда Man in the Middle взломает протокол канала обновления то он сможет установить на компьютер изменённый Adobe Acrobat Reader и захватить управление компьютером.
  • если Adobe выпустит кривое (либо несовместимое с каким-то ПО на вашем компьютере) обновление это может привести систему в нерабочее состояние, и вы понятия не будете иметь кто виноват.

Обратите внимание на то, что я использовал выражение “когда Man in the Middle взломает протокол”. Учитывая количество установленных программ Acrobat Reader в мире и то что автообновлялка имеет права системного сервиса формулировка “если” не подходит — поздно или рано протокол вскроют.

Continue reading Как запретить автообновление Adobe Reader и удалить его сервис

Где взять полный инсталятор Adobe Flash Player

Последнее время найти полную версию для оффлайновой установки Adobe Flash Player стало не так просто. Гугл приводит посетителей на страницу где предлагается стянуть непонятный модуль который затем стянет и установит на компьютер Adobe Flash Player. На этой же страничке можно увидеть заботливо установленную птичку-согласие установку “троянского” продукта McAfee

Дополнительное предложение: Да, установить бесплатную утилиту McAfee Security Scan Plus для проверки состояния безопасности моего ПК. Эта утилита не изменит настройки ПК и параметры существующей антивирусной программы.

Очевидно, что установка этого бесплатного продукта каким-то волшебным образом прибыльна компании McAfee да так, что она вшита в интерфейс сайта Adobe на постоянной основе.

Но хватит о маркетологах.
После продвинутого гугления вылавливаем таки нужную ссылку.
https://www.adobe.com/products/flashplayer/distribution3.html

Continue reading Где взять полный инсталятор Adobe Flash Player