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

Home | Index | Changes | Comments | Users | Registration | Login  Password:  
 
This is an old revision of RomanSavochenko/LinuxShortAll/part3 from 2010-12-20 10:54:54..

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)

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
# Симметричное шифрование файла алгоритмом 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.pem
# Создание сертификата подписанного собственным секретным ключом
$ openssl req -x509 -new -key ./key.pem -out ./selfcert.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 Создание, использование и обслуживание 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.14 Свободная запись на перезаписываемые оптические носители (пакетный режим)

# Включение пакетного режима. Для оптических носителей всех типов.
$ 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.15 Запуск терминальной задачи на сервере и продолжение её работы в фоне

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

3.16 Администрирование виртуальных серверов (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.17 Система контроля версий 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.18 Система контроля версий - Subversion (SVN)

# Загрузка локальной копии репозитория
$ 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.19 Система контроля версий - GIT

# Инициализация текущей директории как новый пустой репозиторий.
$ git init
# Загрузка локальной копии репозитория
$ 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 log

3.20 Подготовка и компиляция проектов на основе 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.21 Подготовка к проверке выделения памяти с помощью Electric Fence

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

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


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