OpenSCADAWiki: Roman Savochenko/Linux Short All/part3 ...

Home | Index | Changes | Comments | Users | Registration | Login  Password:  
 

3 Процедуры

3.1 Компиляция ядра

$ cd KernelTree/  #Переход к распакованному корню дерева исходников ядра
$ make config(menuconfig, xconfig)  #Конфигурация
$ make dep  #Создание файлов зависимостей
$ make clean  #Очистка от ранее скомпилированных модулей
$ make bzImage  #Компиляция ядра
$ make install  #Установка ядра
$ make modules  #Компиляция модулей
$ make modules_install  #Установка модулей

3.2 Создание swap в файле

$ dd if=/dev/zero of=/swap bs=1024 count=8208  #Создание файла необходимого размера для swap
$ mkswap /swap  #Инициализация структуры swap в файле
$ /bin/sync  #Сброс изменений на диск
$ swapon /swap  #Включение swap (отключение - swapoff)

3.3 Смена имени системы

3.4 Удалённое подключение с использованием X-сервера, для запуска GUI приложений

Вариант 1 (обычный):

client$ xinit - :1  #Запустить X-сервер на клиенте (должен запуститься xterm)
client$ xhost +server  #Зарегистрировать машину сервера у клиента
client$ telnet server -l UserName  #Подключиться к удаленной машине (серверу)
server$ export DISPLAY=client:0.0  #Установить переменную DISPLAY
server$ startkde  #Запустить оконный менеджер

Вариант 2 (используя ssh):
client$ xinit - :1  #Запустить X-сервер на клиенте (должен запуститься xterm)
client$ ssh -X UserName@server  #Подключиться к удаленной машине (серверу)
server$ startkde  #Запустить оконный менеджер

Вариант 3 (протокол XDMCP):
#Включение поддержки XDMCP протокола на стороне сервера
#Для kdm (/etc/X11/kdm/kdmrc): Включить в секции [Xdmcp]
#Выбор удалённой авторизации и входа в диспей-менеджере клиента (xdm, kdm, gdm)

Проблема подключения X-сервера 1: "cannot open display :N":
#Для пользователя "root" при рабочем "user"
$ su -        #переключение на суперпользователя
$ touch .Xauthority  
$ xauth merge ~user/.Xauthority  
$ export DISPLAY=:0  #если по умолчанию нет
$ gparted

3.5 Установка русской консоли

$ consolechars -f UniCyr_8x16 -m koi8-r;
$ echo -ne "\033(K";
$ loadkeys ru1;

3.6 Форматирование дискет, создание FS, проверка FS

$ fdformat  /dev/fd0
$ mkfs.vfat /dev/fd0
$ ckfs.vfat -ta /dev/fd0

3.7 Создание зашифрованных ФС

$ dd if=/dev/zero of=./sequre_disk bs=1024 count=50000  #Создание файла для будущей FS
$ losetup -e aes /dev/loop0 ./sequre_disk  #Создание шифрованого loop устройства
$ mkfs.ext3 /dev/loop0  #Создание файловой системы на loop устройстве
$ losetup -d /dev/loop0  #Отключение loop устройства
$ mount -o loop,encryption=aes ./sequre_disk /mnt/tmp/  #Обычное монтирование шифрованной ФС

3.8 Подключение дисковых квот

3.9 Печать страниц документации

3.10 Использование OpenSSL

$ openssl rand 5  #Генерация последовательности случайных байт
$ openssl ciphers HIGH  #Запрос списка алгоритмов для указанного уровня
# Генерация секретного RSA и DSA ключа key.pem, зашифрованного des3.
# В качестве источника случайных данных используется /var/log/messages.
$ openssl genrsa -out key.pem -des3 -rand /var/log/messages 2048
$ openssl dsaparam -rand /var/log/messages -out dsaprm 1024
$ openssl gendsa -out key.pem -idea -rand /var/log/messages dsaprm
# Создание публичного RSA и DSA ключа на основе секретного
$ openssl rsa -in key.pem -out pubkey.pem -pubout
$ openssl dsa -in key.pem -out pubkey.pem -pubout
# Изменение пароля и алгоритма шифрования секретного RSA и DSA ключа, удаление пароля и шифрования
$ openssl rsa -in key.pem -out key1.pem -idea
$ openssl dsa -in key.pem -out key1.pem -des3
$ openssl rsa -in key.pem -out key1.pem
# Симметричное шифрование файла алгоритмом des3 и кодирование base64
$ openssl des3 -in logo.png -out logo.des3
$ openssl base64 -in logo.des3 -out logo.des3.base64
$ openssl des3 -a -in logo.png -out logo.des3.base64
# Декодирование файла из base64 и симметричная дешифрация из des3
$ openssl base64 -d -in logo.des3.base64 -out logo.des3
$ openssl des3 -d -in logo.des3 -out logo.png
$ openssl des3 -d -a -in logo.des3.base64 -out logo.png
# Конвертация ассиметричных ключей и сертификатов с формата PEM в DER и обратно
$ openssl x509 -inform PEM -in key.pem -outform DER -out key.cer
$ openssl rsa -inform PEM -in key.pem -outform DER -out key.der
# Вычисление хеша (md5,sha1 ...)
$ openssl md5 -c ./logo.png
# Подпись файла секретным ключом и проверка ЭЦП публичным ключом, с алгоритмом хеширования md5
$ openssl dgst -sign key.pem -out logo.sign -md5 logo.png
$ openssl dgst -signature logo.sign -verify pubkey.pem -md5 logo.png
# Асимметричная шифрация файла с использованием публичного ключа и дешифрация секретным (RSA)
$ openssl rsautl -in logo.png -out logo.cr -inkey pubkey.pem -pubin -encrypt
$ openssl rsautl -in logo.cr -out logo.png -inkey key.pem -decrypt
# Создание запроса на сертификацию на основе создаваемого секретного ключа, а затем сертификата
$ openssl req -new -key tmp.key -out certreq.csr
$ openssl x509 -req -in certreq.csr -signkey tmp.key -out cert.pem -days 365
# Создание сертификата подписанного собственным секретным ключом и вместе с ключом 
$ openssl req -x509 -new -key key.pem -out selfcert.pem -days 365
$ openssl req -x509 -new -keyout cakey.pem -out cacert.pem -days 365
# Просмотр информации сертификата в читабельном виде
$ openssl x509 -in selfcert.pem -noout -text
# Подписывание клиентского сертификата CA сертификатом
$ openssl x509 -req -in client.pem -CA CAcert.pem -CAkey CAkey.pem -CAcreateserial -days 365 -out client1.pem

3.11 Настройка ssh

client$ ssh-keygen  #Генерация асимметричного ключа на локальной машине в директорию " /.ssh/"
client$ scp ./identity.pub rserver: ~/.ssh/  #Передача публичного ключа на удалённый сервер (любым способом)
rserver$ cat ~/.ssh/identity.pub >> ~/.ssh/authorized_keys  #Авторизация своего открытого ключа на сервере
# либо 'client$ ssh-copy-id rserver'  вместо предыдущих двух строчек
client$ ssh rserver  #Подключение к удалённому серверу

3.12 Создание ramdisk (диска в памяти)

$ mkfs /dev/ram0
$ mount /dev/ram0 /mnt/disk

3.13 Создание, использование и обслуживание программного RAID

# Запрос состояния устройств зеркала
$ cat /proc/mdstat
# Запрос информации/состояния устройства массива или раздела
$ mdadm -Q /dev/sdb1
# Анализ и получение текущих устройств RAID, обычно для /etc/mdadm/mdadm.conf
$ mdadm --examine --scan
# Создание массива, "missing" для недоступных разделов на данном этапе
$ mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 [/dev/sdb1|missing]
# Добавление раздела в массив
$ mdadm /dev/md0 --add /dev/sdb1
# Останов массива
$ mdadm -S /dev/md0
# Установка признака "FAIL" для возможности отключения
$ mdadm --manage /dev/md0 --fail /dev/sdb1
# Удаление раздела из массива, на профилактику
$ mdadm --manage /dev/md0 --remove /dev/sdb1
# Добавление раздела в массив, после замены
$ mdadm --manage /dev/md0 --add /dev/sdb1

3.14 Создание, использование и обслуживание LVM

$ vgscan  #Поиск по системе виртуальных групп VG
$ vgchange -ay  #Активизировать виртуальную группу (-an - деактивизировать)
$ pvscan  #Поиск доступных физических томов и отображение сравнительной информации о них
$ pvdisplay /dev/hda1  #Просмотр информации о физическом томе
$ pvcreate /dev/hda1  #Подготовка физического тома PV (тип раздела 8Eh)
$ pvmove /dev/hda1  #Освобождение физического тома (перенос данных на другие физические тома)
$ vgdisplay vg00  #Просмотреть информацию о виртуальной группе
$ vgcreate vg00 /dev/hda1 /dev/hdb1  #Создание виртуальной группы на основе двух физических томов
$ vgremove vg00  #Удаление виртуальной группы
$ vgextend vg00 /dev/hdc1  #Добавление физического тома к виртуальной группе
$ vgreduce vg00 /dev/hda1  #Удаление физического тома из виртуальной группы
$ vgexport vg00  #Подготовка виртуальной группы для переноса на иную машину
$ vgimport vg00 /dev/hda1 /dev/hda2  #Импорт виртуальной группы (с другой машины)
$ lvcreate -L1500 -nlv00 vg00  #Создание логического тома (LV) с именем nlv00 и размером 1500 Мб
$ lvremove /dev/vg00/home  #Удаление логического тома
$ lvextend -L120M /dev/vg00/home  #Увеличение размера логического тома до указаной величины
$ lvextend -L+100M /dev/vg00/home #Увеличение размера логического тома на указанную величину
$ lvreduce -L120M /dev/vg00/home  #Уменьшение размера логического тома до указаной величины
$ lvreduce -L-100M /dev/vg00/home  #Уменьшение размера логического тома на указанную величину
$ e2fsadm  -L+100M /dev/vg00/home  #Изменение размер логического тома с файловой системой ext2/ext3

3.15 Свободная запись на перезаписываемые оптические носители (пакетный режим)

# Включение пакетного режима. Для оптических носителей всех типов.
$ cdrwtool -d /dev/cdrom -q  # Подготовка CD-RW носителя
$ dvd+rw-format /dev/dvd  # Подготовка носителей: DVD-RW, DVD+RW, DVD-RAM
$ pktsetup /dev/pkt_dev /dev/cdrom  # Включение режима пакетной записи на устройство /dev/pkt_dev
$ mkudffs /dev/pkt_dev  # Создание файловой системы UDF. Только для DVD+RW и DVD-RAM
$ mount /dev/pkt_dev /mnt/pkt_cd -t udf -o rw,noatim  # Монтирование пакетного устройства на /mnt/pkt_cd
#Прямая запись (без пакетного режима) на носители DVD+RW и DVD-RAM
$ dvd+rw-format /dev/dvd  # Подготовка носителей (один раз).
$ mkudffs /dev/dvd  # Создание файловой системы UDF (один раз).
$ mount /dev/dvd /mnt/cdrom  # Обычное монтирование устройства. Т.е совершенно прозрачно и стандартно!

3.16 Запуск терминальной задачи на сервере и продолжение её работы в фоне

$ screen  # Запуск терминального экранного менеджера
$ wget ftp://workserv.org/mydownloadfile.iso  # Запуск задачи
Ctrl+A D  # Отключение экрана от терминала (выполнение в фоне)
$ screen -r  # Подключение к фоновому терминалу.

3.17 Администрирование виртуальных серверов (VPS) на основе технологии OpenVZ

#Создание VPS из шаблона
$ vzctl create 101 --ostemplate altlinux-4.0 --config vps.basic
#Удаление VPS
$ vzctl destroy 101
#Получить перечень всех VPS
$ vzlist -a
#Установка имени VPS
$ vzctl set 101 --name vps101 --save
#Установка общих параметров VPS: onboot, hostname, nameserver, searchdomain, userpassword
$ vzctl set 101 --onboot yes --save
$ vzctl set 101 --hostname test101.my.org --save
$ vzctl set 101 --nameserver 192.168.1.165 --save
$ vzctl set 101 --searchdomain my.org --save
$ vzctl set 101 --userpasswd root:test
#Конфигурация venet
$ vzctl set 101 --ipadd 10.10.186.1 --save
#Конфигурация veth
$ vzctl set 101 --netif_add eth0 --save
#Запуск и останов VPS
$ vzctl start 101
$ vzctl stop 101
#Исполнение команды внутри VPS ("ls /root")
$ vzctl exec 101 ls /root
#Административный вход на VPS сервер
$ vzctl enter 101
#Установка возможностей VPS
$ vzctl set 101 --capability sys_time:on --save  # Возможность менять системное время
#Просмотр лимитов VPS и их нарушений
$ vzctl exec 101 cat /proc/user_beancounters
#Установка лимитов VPS (kmemsize, lockedpages, privvmpages ...)
$ vzctl set 1 --dgramrcvbuf 1512000:1520000 --save
#Установка доступа к устройствам (/dev)
$ vzctl set 101 --devnodes ttyS0:rw --save
$ vzctl set 101 --devices b:8:16:rw --devices b:8:17:rw --devices b:8:18:rw --save

3.18 Система контроля версий CVS

# Указание на каталог, где находится репозиторий CVS.
$ export CVSROOT=/home/Roman/progects/CVS_R
# Указание на удалённый репозиторий.
$ export CVSROOT=:pserver:user@serv.comp.org:/CVS_R
# Создание пустого репозитория.
$ cvs -d /usr/local/cvsroot init
# Создание пустого репозитория на удалённом сервере.
$ cvs -d:pserver:user@serv.comp.org:/usr/local/cvsroot init
# Импортирует проект MyProg от имени создателя MyName в CVS.
$ cvs import MyProg MyName start
# Экспорт проекта tc для работы над ним. В результате чего будет создан каталог `tc', в который будут помещены все файлы.
$ cvs -z 3 co tc
# Загрузить дерева проекта с ревизией(тегом) <revise>.
$ cvs co -r revise Prog
# Синхронизация исходных текстов со всеми изменениями (выполнять перед фиксацией своих изменений).
$ cvs up
# Привести содержимое дерева в соответствии с ревизией <revise>.
$ cvs up -r revise
# Зафиксировать изменения в backend.c и запускает редактор (ENV: CVSEDITOR), чтобы ввести журнальную запись об изменениях.
$ cvs ci backend.c -r revise
# Зафиксировать изменения в дереве под ревизией <revise> для всего дерева.
$ cvs ci -r revise
# Привести вершину дерева к <revise>.
$ cvs tag revise
# Выполняет удаления вашей копии проекта и при этом проверяет, что все ваши изменения были зафиксированы.
$ cvs release -d tc
# Вывести лог изменений в файле file.cc.
$ cvs log file.cc
# Вывести описание изменений внесенных в файл `driver.c'.
$ cvs diff driver.c
# Внесение файла readmi.cc под контроль CVS.
$ cvs add readmi.cc
# Сообщение CVS о том что файл readmi.cc должен быть удалён из репозитория при следуйщей команде <ci>. 
$ cvs rm readmi.cc

3.19 Система контроля версий - Subversion (SVN)

# Получить содержимое в ветви репозитория
$ svn list svn://rep.org/trunk
# Загрузка локальной копии репозитория
$ svn checkout svn://rep.org/trunk/project
# Получение состояния модификации локальной копии репозитория
$ svn status
# Получение изменений в виде патча
$ svn diff
# Добавить файл или директорию в репозиторий
$ svn add ./new.file
# Удалить файл или директорию из репозитория
$ svn delete ./rem.file
# Принять локальные изменения и отправить их на сервер
$ svn commit -m "Changes message"
# Копирование участка репозитория, включая и локальные, а также для создания новой ветви или тега.
$ svn copy svn://rep.org/trunk/project svn://rep.org/branch/project_user
# Объединение изменений ветви, указанной ревизии, с локальной копией другой ветви
$ svn merge -c 1222 svn://rep.org/trunk/project
# Посмотреть историю репозитория
$ svn log

3.20 Система контроля версий - GIT

# Инициализация текущей директории как новый пустой репозиторий.
$ git init
# Добавить удалённый репозиторий для загрузки локальной копии
$ git remote add origin user1@gitserver:/home/repo/alpha.git
# Загрузка локальной копии репозитория
$ git clone git://git.server.org/rep.git
# Добавить изменения, новые файлы и удаление старых.
$ git add .
# Получение состояния репозитория
$ git status
# Посмотреть внесённые изменения
$ git diff --cached
# Принять локальные изменения, превращение временного состояния индекса в постоянное
$ git commit -am "Changes message"
# Сформировать GIT-патч принятых локальных изменений
$ git format-patch -1
# Выгрузить локальные изменения
$ git push
# Добавление тега 
$ git tag -sm "Tag 0.1.0 message" tag-name-0.1.0
# Выгрузить локальные теги
$ git push origin --tags
# Получение списка всех веток
$ git branch
# Создание новой ветки 
$ git branch experimental 
# Удаление ветви
$ git branch -d experimental
# Переключиться на другую ветку
$ git checkout experimental
# Объединить изменения в ветви experimental с текущей веткой локального репозитория
$ git merge experimental 
# Получить изменения из другого репозитория и объединить их с текущим
$ git pull git://git.server.org/rep.git
# или
$ git fetch git://git.server.org/rep.git
$ git merge git://git.server.org/rep.git
# Посмотреть историю репозитория
$ git log


Расширенные команды работы в инфраструктуре ALTLinux Git/Gear

#  Создать удалённый репозиторий в инфраструктуре
$ ssh git.alt init-db alpha
#  Поиск пакета в инфраструктуре
$ ssh git.alt find-package <pattern>
#  Клонировать репозиторий в инфраструктуре
$ ssh git.alt clone <path to git repository> [<destination directory>]
# Перемещение репозитория в инфраструктуре
$ ssh git.alt mv-db <path to source directory> <path to destination directory>
# Удаление репозитория
$ ssh git.alt rm-db <path to git repository>

3.21 Подготовка и компиляция проектов на основе autoconf/automake

$ gettextize -f -c  #Генерация локализационных файлов
$ autoheader  #Генерация файла
$ autoscan  #Автоматическая генерация cofigure.scan и проверка configure.in
$ ifnames  #Создание списка идентификаторов которые используются в препроцессоре
# Генерация/перегенерация сборочной системы
$ aclocal -I -m4  #Генерация макроса aclocal.m4
$ autoconf  #Генерация скрипта configure. Для реконфигурации использовать autoreconf
$ automake -a -c  #Генерация файла Makefile.in
$ configure  #Генерация Makefile
$ make  #Компиляция проекта
$ make install  #Установка программы

3.22 Подготовка к проверке выделения памяти с помощью Electric Fence

3.23 Подготовка к проверке выделения памяти с помощью mtrace

3.24 Добавление в программу поддержки i18n

3.25 Перекодирование видео и аудио


 
There are no files on this page.[Display files/form]
There is no comment on this page. [Display comments/form]