Знакомьтесь, Zabbix! Мониторинг активных устройств и рабочих станций. Часть 2
Юрий Денисов
{<сервер>:<ключ>.<функция>(<параметры>)}<оператор><константа>
{NAS:LoadAVG.avg(300)}>1
-----------------------------------------------------------------------------------------------------------------
PowerShell. Форматированный вывод данных
Иван Коробко
Листинг 1. Вывод информации из каталога Active Directory
$obj = New-Object System.DirectoryServices.DirectorySearcher
# RDN-путь к контейнеру
$obj.SearchRoot = "LDAP://…"
# Фильтр для поиска
$obj.Filter = "(&(objectClass=person)(!(objectClass=computer)))"
# Поле сортировки объектов (ФИО)
$obj.Sort.PropertyName = "description"
# Порядок сортировки данных (0 — по алфавиту, 1 — в обратном порядке)
$obj.Sort.Direction = 0
# Поиск объектов
$result = $obj.FindAll()
# Форматированный вывод данных из массива
$result | % { write-host $_.properties.description
write-host $_.properties.title
write-host $_.properties.facsimiletelephonenumber
write-host $_.properties.physicaldeliveryofficename
write-host # Строка разделитель
}
Листинг 2. Создание PSObject
$PSobj = New-Object PSObject
Add-Member -InputObject $PSobj -MemberType NoteProperty -Name "Name" -Value "Иванов"
Add-Member -InputObject $PSobj -MemberType NoteProperty -Name "Profession" -Value "Бухгалтер"
# Вывод данных
Write-Host $PSobj
Get-Help Add-Member -full
$Aobj = @ {"Ключ1" = "Значение1"; "Ключ2" = "Значение2"…}
Листинг 3. Формирование PSObject на примере информации из каталога Active Directory
$obj = New-Object System.DirectoryServices.DirectorySearcher
# RDN-путь к контейнеру
$obj.SearchRoot = "LDAP://…"
# Фильтр для поиска
$obj.Filter = "(&(objectClass=person)(!(objectClass=computer)))"
# Поле сортировки объектов (ФИО)
$obj.Sort.PropertyName = "description"
# Порядок сортировки данных (0 — по алфавиту, 1 — в обратном порядке)
$obj.Sort.Direction = 0
# Поиск объектов
$result = $obj.FindAll()
# Объявление динамического ассоциативного массива
$Aobj=@()
# Перебор элементов массива, содержащего результаты поиска
$result | % {
# Создание PSObject
$psObj = New-Object PSObject
# Добавление в объект характеристик пользователя
Add-Member -InputObject $psObj -MemberType NoteProperty -Name "Name" -Value ([string]$_.properties.description)
Add-Member -InputObject $psObj -MemberType NoteProperty -Name "Title" -Value ([string]$_.properties.title)
Add-Member -InputObject $psObj -MemberType NoteProperty -Name "Telephone" -Value ([string]$_.properties.facsimiletelephonenumber)
Add-Member -InputObject $psObj -MemberType NoteProperty -Name "Room" -Value ([string]$_.properties.physicaldeliveryofficename)
# Перенос данных текущего пользователя в ассоциативный массив
$Aobj +=$psObj
}
# Вывод данных
$Aobj
Get-Help Format-List –full
$PSObject | Format-Table –Property PropertyName1, PropertyName2, … -AutoSize
Format-Table –InputObject $PSObject PropertyName1, PropertyName2, … -AutoSize
Листинг 4. Форматированный вывод с помощью таблицы
$obj = New-Object System.DirectoryServices.DirectorySearcher
# RDN-путь к контейнеру
$obj.SearchRoot = "LDAP://…"
# Фильтр для поиска
$obj.Filter = "(&(objectClass=person)(!(objectClass=computer)))"
# Поле сортировки объектов (ФИО)
$obj.Sort.PropertyName = "description"
# Порядок сортировки данных (0 — по алфавиту, 1 — в обратном порядке)
$obj.Sort.Direction = 0
# Поиск объектов
$result = $obj.FindAll()
# Объявление динамического ассоциативного массива
$Aobj=@()
# Перебор элементов массива, содержащего результаты поиска
$result | % {
# Создание PSObject
$psObj = New-Object PSObject
# Добавление в объект характеристик пользователя
Add-Member -InputObject $psObj -MemberType NoteProperty -Name "Name" -Value ([string]$_.properties.description)
Add-Member -InputObject $psObj -MemberType NoteProperty -Name "Title" -Value ([string]$_.properties.title)
Add-Member -InputObject $psObj -MemberType NoteProperty -Name "Telephone" -Value ([string]$_.properties.facsimiletelephonenumber)
Add-Member -InputObject $psObj -MemberType NoteProperty -Name "Room" -Value ([string]$_.properties.physicaldeliveryofficename)
# Перенос данных текущего пользователя в ассоциативный массив
$Aobj +=$psObj
}
# Вывод данных
$Aobj | Format-Table –AutoSize
$Aobj | Format-Table – Property Department, Name, Title –AutoSize
$Obj | Get-Member | Out-Gridview
Out-GridView –InputObject PSobject –Title Название_Окна
Листинг 5. Форматированный вывод в GUI-таблицу
$obj = New-Object System.DirectoryServices.DirectorySearcher
# RDN-путь к контейнеру
$obj.SearchRoot = "LDAP://…"
# Фильтр для поиска
$obj.Filter = "(&(objectClass=person)(!(objectClass=computer)))"
# Поле сортировки объектов (ФИО)
$obj.Sort.PropertyName = "description"
# Порядок сортировки данных (0 — по алфавиту, 1 — в обратном порядке)
$obj.Sort.Direction = 0
# Поиск объектов
$result = $obj.FindAll()
# Объявление динамического ассоциативного массива
$Aobj=@()
# Перебор элементов массива, содержащего результаты поиска
$result | % {
# Создание PSObject
$psObj = New-Object PSObject
# Добавление в объект характеристик пользователя
Add-Member -InputObject $psObj -MemberType NoteProperty -Name "Name" -Value ([string]$_.properties.description)
Add-Member -InputObject $psObj -MemberType NoteProperty -Name "Title" -Value ([string]$_.properties.title)
Add-Member -InputObject $psObj -MemberType NoteProperty -Name "Telephone" -Value ([string]$_.properties.facsimiletelephonenumber)
Add-Member -InputObject $psObj -MemberType NoteProperty -Name "Room" -Value ([string]$_.properties.physicaldeliveryofficename)
# Перенос данных текущего пользователя в ассоциативный массив
$Aobj +=$psObj
}
# Вывод данных
$Aobj | Out-GridView –Title "Отчет по пользователям"
Листинг 6. Вывод простейшего диалогового окна
$text="Привет"
[Windows.Forms.MessageBox]::Show($text)
$obj = [Windows.Forms.MessageBox]::Show($message, $title, $buttons, $icons, $defaultButton)
Листинг 7. Вывод сложного диалогового окна
$message = "Удалить все файлы?"
$title = "Операции с файлами"
$buttons = [Windows.Forms.MessageBoxButtons]::YesNo
$icons = [Windows.Forms.MessageBoxIcon]::Question
$defaultButton = "Button2"
$obj = [Windows.Forms.MessageBox]::Show($message, $title, $buttons, $icons, $defaultButton)
switch ([int]$obj)
{
{$obj -eq 6} {'Нажата кнопка "ОК"'}
{$obj -eq 7} {'Нажата кнопка "No"'}
}
Out-File c:\report.txt
Get-Help Out-File -Full
Листинг 8. Формирование отчета в HTML-формате
$obj = New-Object System.DirectoryServices.DirectorySearcher
# RDN-путь к контейнеру
$obj.SearchRoot = "LDAP://…"
# Фильтр для поиска
$obj.Filter = "(&(objectClass=person)(!(objectClass=computer)))"
# Поле сортировки объектов (ФИО)
$obj.Sort.PropertyName = "description"
# Порядок сортировки данных (0 — по алфавиту, 1 — в обратном порядке)
$obj.Sort.Direction = 0
# Поиск объектов
$result = $obj.FindAll()
# Объявление динамического ассоциативного массива
$Aobj=@()
# Перебор элементов массива, содержащего результаты поиска
$result | % {
# Создание PSObject
$psObj = New-Object PSObject
# Добавление в объект характеристик пользователя
Add-Member -InputObject $psObj -MemberType NoteProperty -Name "Name" -Value ([string]$_.properties.description)
Add-Member -InputObject $psObj -MemberType NoteProperty -Name "Title" -Value ([string]$_.properties.title)
Add-Member -InputObject $psObj -MemberType NoteProperty -Name "Telephone" -Value ([string]$_.properties.facsimiletelephonenumber)
Add-Member -InputObject $psObj -MemberType NoteProperty -Name "Room" -Value ([string]$_.properties.physicaldeliveryofficename)
# Перенос данных текущего пользователя в ассоциативный массив
$Aobj +=$psObj
}
# Вывод данных
$Aobj | ConvertTo-Html -Head "
Отчет по пользователям
" | % { $_.replace("", " | ").replace("","") } | Out-File -FilePath c:\report.htm
Out-Printer -Name Имя_Принтера -InputObject $PSObject
$PSObject | Out-Printer -Name Имя_Принтера
Листинг 9. Вывод данных на печать
$obj = New-Object System.DirectoryServices.DirectorySearcher
# RDN-путь к контейнеру
$obj.SearchRoot = "LDAP://…"
# Фильтр для поиска
$obj.Filter = "(&(objectClass=person)(!(objectClass=computer)))"
# Поле сортировки объектов (ФИО)
# Порядок сортировки данных (0 — по алфавиту, 1 — в обратном порядке)
$obj.Sort.PropertyName = "description"
$obj.Sort.Direction = 0
# Поиск объектов
$result = $obj.FindAll()
# Объявление динамического ассоциативного массива
$Aobj=@()
# Перебор элементов массива, содержащего результаты поиска
$result | % {
# Создание PSObject
$psObj = New-Object PSObject
# Добавление в объект характеристик пользователя
Add-Member -InputObject $psObj -MemberType NoteProperty -Name "Name" -Value ([string]$_.properties.description)
Add-Member -InputObject $psObj -MemberType NoteProperty -Name "Title" -Value ([string]$_.properties.title)
Add-Member -InputObject $psObj -MemberType NoteProperty -Name "Telephone" -Value ([string]$_.properties.facsimiletelephonenumber)
Add-Member -InputObject $psObj -MemberType NoteProperty -Name "Room" -Value ([string]$_.properties.physicaldeliveryofficename)
# Перенос данных текущего пользователя в ассоциативный массив
$Aobj +=$psObj
}
# Вывод данных
$Aobj | Out-GridView –Title "Отчет по пользователям"
$message = "Напечатать отчет?"
$title = ""
$buttons = [Windows.Forms.MessageBoxButtons]::okcancel
$icons = [Windows.Forms.MessageBoxIcon]::Question
$defaultButton = "Button2"
$Mobj = [Windows.Forms.MessageBox]::Show($message, $title, $buttons, $icons, $defaultButton)
switch ([int]$Mobj)
{
{$Mobj -eq 1} {$Aobj | Out-Printer }
{$Mobj -eq 2} {}
}
-----------------------------------------------------------------------------------------------------------------
Коллективная работа. Bugzilla + Subversion + Mailman + Wiki
Константин Кондаков
auth=$(/usr/local/subversion/subversion/bin/svnlook author -r $REV $REPOS)
dt=$(/usr/local/subversion/subversion/bin/svnlook date -r $REV $REPOS)
changed=$(/usr/local/subversion/subversion/bin/svnlook changed -r $REV $REPOS)
log=$(/usr/local/subversion/subversion/bin/svnlook log -r $REV $REPOS)
./configure --prefix=$SUBVERSION_BIN --with-apxs=$APACHE_BIN/bin/apxs --with-apr=$SVN_BIN/apr --with-apr-util=$SVN_BIN/apr-util --with-berkeley-db --with-pic --with-ssl --with-swig=$SWIG_BIN --with-neon=$NEON_BIN
# tar -zxf swig.tar.gz
# cd swig
# ./configure --refix=/usr/local/subversion/swig
# make
# make install
echo "Starting SWIG install"
# Change directory to Swig source directory
cd $SWIG_SRC
# Clean any previous build
make clean
# Configure Swig
./configure --prefix=$SWIG_BIN
# Compile Swig
make
# Install Swig
make install
echo "SWIG completed"
# useradd mailman
# mkdir -p /usr/local/mailman && chown -R mailman:mailman /usr/local/mailman && chmod 02775 /usr/local/mailman
#./configure --with-cgi-gid=apache --with-mail-gid=mail
# make && make install
bugzilla:"|/etc/smrsh/email_in.pl -vvv"
mailman: "|/usr/local/mailman/mail/mailman post mailman"
mailman-admin: "|/usr/local/mailman/mail/mailman admin mailman"
mailman-bounces: "|/usr/local/mailman/mail/mailman bounces mailman"
mailman-confirm: "|/usr/local/mailman/mail/mailman confirm mailman"
mailman-join: "|/usr/local/mailman/mail/mailman join mailman"
mailman-leave: "|/usr/local/mailman/mail/mailman leave mailman"
mailman-owner: "|/usr/local/mailman/mail/mailman owner mailman"
mailman-request: "|/usr/local/mailman/mail/mailman request mailman"
mailman-subscribe: "|/usr/local/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe: "|/usr/local/mailman/mail/mailman unsubscribe mailman"
prj-bugs: "|/usr/local/mailman/mail/mailman post prj-bugs"
prj-bugs-admin: "|/usr/local/mailman/mail/mailman admin prj-bugs"
prj-bugs-bounces: "|/usr/local/mailman/mail/mailman bounces prj-bugs"
prj-bugs-confirm: "|/usr/local/mailman/mail/mailman confirm prj-bugs"
prj-bugs-join: "|/usr/local/mailman/mail/mailman join prj-bugs"
prj-bugs-leave: "|/usr/local/mailman/mail/mailman leave prj-bugs"
prj-bugs-owner: "|/usr/local/mailman/mail/mailman owner prj-bugs"
prj-bugs-request: "|/usr/local/mailman/mail/mailman request prj-bugs"
prj-bugs-subscribe: "|/usr/local/mailman/mail/mailman subscribe prj-bugs"
prj-bugs-unsubscribe: "|/usr/local/mailman/mail/mailman unsubscribe prj-bugs"
prj-vcs: "|/usr/local/mailman/mail/mailman post prj-vcs"
prj-vcs-admin: "|/usr/local/mailman/mail/mailman admin prj-vcs"
prj-vcs-bounces: "|/usr/local/mailman/mail/mailman bounces prj-vcs"
prj-vcs-confirm: "|/usr/local/mailman/mail/mailman confirm prj-vcs"
prj-vcs-join: "|/usr/local/mailman/mail/mailman join prj-vcs"
prj-vcs-leave: "|/usr/local/mailman/mail/mailman leave prj-vcs"
prj-vcs-owner: "|/usr/local/mailman/mail/mailman owner prj-vcs"
prj-vcs-request: "|/usr/local/mailman/mail/mailman request prj-vcs"
prj-vcs-subscribe: "|/usr/local/mailman/mail/mailman subscribe prj-vcs"
prj-vcs-unsubscribe: "|/usr/local/mailman/mail/mailman unsubscribe prj-vcs"
# newaliases
# cd /usr/local/mailman
# patch -p0 < mailmanp.patch
httpd configuration settings for use with mailman.
#
ScriptAlias /mailman/ /usr/local/mailman/cgi-bin/
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
Alias /pipermail/ /usr/local/mailman/archives/public/
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
RedirectMatch ^/mailman[/]*$ http://DOM.AIN/mailman/listinfo
#DOM.AIN – надо исправить на работающий ваш домен
# /sbin/service httpd restart
# /usr/lib/mailman/bin/mmsitepass
# /usr/lib/mailman/bin/update
# cd /usr/local/mailman/scripts
# cp mailman /etc/init.d/mailman
# chkconfig --add mailman
# chkconfig --list mailman
# newlist mailman
# newlist prj-bugs
# newlist prj-vcs
# newaliases
# cd /etc/smrsh/
# ln -s /usr/local/mailman/mail/mailman mailman
# vi /usr/local/mailman/Mailman/mm_cfg.py
DEFAULT_URL_HOST = 'www.dom.ain'
DEFAULT_EMAIL_HOST = 'domain'
add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)
###########################################################
# Put YOUR site-specific configuration below, in mm_cfg.py . #
# See Defaults.py for explanations of the values. #
# Note - if you're looking for something that is imported
# from mm_cfg, but you didn't find it above, it's probably
# in Defaults.py.
ALLOW_SITE_ADMIN_COOKIES = Yes # For secure intranets only
DEFAULT_CHARSET = 'utf-8'
DEFAULT_MAX_MESSAGE_SIZE = 4096 # kB
# These are needed if archives are accessed only by using HTTPS
DEFAULT_URL_PATTERN = 'https://%s/mailman/'
PUBLIC_ARCHIVE_URL = 'https://%(hostname)s/pipermail/%(listname)s'
mail kon@kondakov.com -s email_in_test < email_in.pl
# pwd
# ls -al
# /usr/local/subversion/apache2/bin/apachectl restart
# /usr/local/mailman/bin/mailmanctl start
# ps -ef | grep mail
# mysqladmin -uroot password
# mysql -uroot -p mysql
GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER,
CREATE, LOCK TABLES, CREATE TEMPORARY TABLES, DROP,
REFERENCES ON bugs.* TO bugs@localhost
IDENTIFIED BY '';
FLUSH PRIVILEGES;
# untar Bugzilla into /var/www/html/bugzilla
# cd /var/www/html/bugzilla
# chown -R root:root . *
# ./checksetup.pl --check-modules
# ./checksetup.pl
AddHandler cgi-script .cgi
Options +Indexes +ExecCGI
DirectoryIndex index.cgi
AllowOverride Limit
# patch -p0 < bugzilla.patch
# vi $BUGZILLA_HOME/localconfig
# perl -MCPAN -e 'install Net::LDAP'
# perl -MCPAN -e 'install Email::Reply'
# perl -MCPAN -e 'install Email::MIME::Attachment::Stripper'
# perl -MCPAN -e 'CPAN::Shell->r'
# vi $BUGZILLA_ROOT/email_in.pl
cd ("/var/www/html/bugzilla");
%param = (
'LDAPBaseDN' => 'CN=Users,DC=domain,DC=com',
'LDAPbinddn' => 'CN=buguser,CN=Users,DC=domain,DC=com:P-a-s-s-w-o-r-d',
'LDAPfilter' => '',
'LDAPmailattribute' => 'mail',
'LDAPserver' => 'domain.ldap.server',
'LDAPstarttls' => 0,
'LDAPuidattribute' => 'sAMAccountName',
'allow_attach_url' => 0,
'allow_attachment_deletion' => 0,
'allowbugdeletion' => 0,
'allowemailchange' => 0,
'allowuserdeletion' => 0,
…
)
# cd /etc/smrsh/
# ln -s /var/www/html/bugzilla/email_in.pl email_in.pl
# cd /var/www/html/bugzilla
# chmod g+w data/mimedump-tmp
# chown -R apache:mail . *
# cd /usr/local/subversion/viewvc && patch -p0 < viewvc.patch
# cd /opt
# tar xzvf svnmailer-1.1.xxx.tgz
# cd svnmailer-1.1.xxx
# svn.......
# patch -p0 < svnmailer.patch
#!/bin/sh
# post commit hook -- called for normal commits
#
# The mailer is put into the background in order to leave the script faster
#
# You need to adjust the config path and the path to svn-mailer if necessary.
CONFIG="/var/svn/conf/svnm.conf"
MAILER="/usr/bin/svn-mailer"
REPOS="$1"
REV="$2"
"${MAILER}" --commit --config "${CONFIG}" --repository "${REPOS}" --revision "${REV}" --debug | /etc/smrsh/email_in.pl -vvv
# cd /opt/php-5.2.5
# ./config.work && make clean && make && make install
! /bin/sh
#
# Created by configure
LDFLAGS=' -lstdc++' \
'./configure' \
'--with-apxs2=/usr/local/subversion/apache2/bin/apxs' \
'--with-ldap=/usr/local/subversion/openldap' \
'--with-openssl=/usr/local/subversion/openssl' \
'--with-mysql' \
"$@"
cd /var/www/html/wiki
chown -R root:root . *
chmod 0777 config
cd /var/www/html/wiki
mv config/LocalSettings.php .
chmod 0700 config
-----------------------------------------------------------------------------------------------------------------
FINEST воскресит. Создание автоматической системы
Юрий Винник
gzip -dc ../rootfs.cgz | cpio -iumdv
find . | bin/cpio -v -o -H newc | gzip -9 > ../rootfs.cgz
dpkg -b <каталог, содержащий дерево пакета> <имя пакета>
#Выбираем автоматически сетевой интерфейс и ждем 30 секунд ответ от DHCP-сервера с сетевыми настройками интерфейса
d-i netcfg/choose_interface select auto
d-i netcfg/dhcp_timeout string 30
#Если ответа от DHCP не получили, то настраиваем сетевой интерфейс вручную
d-i netcfg/dhcp_failed note
d-i netcfg/dhcp_options select Configure network manually
#Устанавливаем сетевое имя и домен
d-i netcfg/get_hostname string finest-server
d-i netcfg/get_domain string finest
#Устанавливает стандартную систему
tasksel tasksel/first multiselect standard
#Устанавливаем перечисленные пакеты в систему
d-i pkgsel/include string finest mc myzci backuppc mysql-server openssh-server console-cyrillic unfs3
#Показываем сообщение о предстоящей перезагрузке
d-i finish-install/reboot_in_progress note
#Заголовок установочного меню
menu title FINEST Install Menu
default vesamenu.c32
prompt 0
timeout 0
#Название пункта меню
LABEL Install
kernel /install.386/vmlinuz
#В параметры загрузки ядра передаем ссылку на созданный нами сценарий загрузки install.conf
append vga=normal file=/cdrom/install.386/install.conf initrd=/install.386/initrd.gz -
-----------------------------------------------------------------------------------------------------------------
Конфиденциальность гарантируется. Сценарии работы с файлами и буфером обмена
Владимир Медведев
gpg --output document.txt.gpg --encrypt --recipient $REC document.txt
gpg --output document.txt --decrypt document.txt.gpg
gpg --output document.txt.gpg --symmetric document.txt
gpg --armor --gen-random 2 15
encrypt-to $KEYID
gpg --output document.txt.sig --sign document.txt
gpg --output document.txt --decrypt document.txt.sig
gpg --output document.txt.asc --clearsign document.txt
gpg --output document.txt.sig --detach-sign document.txt
gpg --verify document.txt.sig document.txt
gpg --print-md sha1 document.txt > document.txt.sha1
gpg --print-md md5 document.txt > document.txt.md5
-----------------------------------------------------------------------------------------------------------------
Squid Account Management System. Управляем трафиком прокси-сервера
Максим Рожков
# ./configure –with-httpd-locations=/srv/www/htdocs --with-Mysql-includes=/usr/include/Mysql --with-Mysql-libpath=/usr/lib/Mysql
# make
# make install
…
Options FollowSymLinks
safe_mode = on
# mysql -u root -p
mysql> GRANT ALL ON squidctrl.* TO sams@localhost IDENTIFIED BY "password";
mysql> GRANT ALL ON squidlog.* TO sams@localhost IDENTIFIED BY "password";
-----------------------------------------------------------------------------------------------------------------
Настройка сетевого шлюза. Проверка работы, исследование изменяемых параметров
Павел Закляков
# ip addr add 192.168.1.3/24 dev eth0
# ifconfig eth0 192.168.1.3/24
# ifconfig eth0 192.168.1.3 netmask 255.255.255.0
# ip addr sh eth0
# ifconfig eth0
# ifconfig eth0 down
# ifconfig eth0 up
# ip link set eth0 down
# ip link set eth0 up
# find / -name NetworkManager
# file /usr/sbin/NetworkManager
# file /etc/rc.d/init.d/NetworkManager
# service NetworkManager stop
# route -n
# netstat -r -n
# ip route show
# route -n
# netstat -r -n
# ip route show
# ping -c2 192.168.1.1
# ip route add 192.168.1.0/24 dev eth0
# route add -net 192.168.1.0/24 dev eth0
# service network restart
# service NetworkManager start
# service NetworkManager stop
# service NetworkManager restart
# ifconfig
# ifconfig eth0 10.1.1.5/24 broadcast 10.1.1.255
# ifconfig eth0 10.1.1.5 netmask 255.255.255.0 broadcast 10.1.1.255
# ip addr add 10.1.1.5/24 broadcast 10.1.1.255 dev eth0
# ifconfig eth0 broadcast 10.1.1.255
# route -n
# ip route sh
# ping -c3 192.168.1.3
# ping -c3 172.16.2.2
# iptables –P INPUT ACCEPT
# iptables –P OUTPUT ACCEPT
# iptables –F
# iptables –P FORWARD ACCEPT
# ip route add 172.16.2.0/24 via 192.168.1.1
# route add -net 172.16.2.0/24 gw 192.168.1.1
# ip route add 172.16.2.2 via 192.168.1.1
# route add -host 172.16.2.2 gw 192.168.1.1
# sysctl net.ipv4.ip_forward=1
# echo "1">/proc/sys/net/ipv4/ip_forward
# sysctl net.ipv4.ip_forward
# cat /proc/sys/net/ipv4/ip_forward
$ /sbin/ip addr show>/tmp/settings1.txt
$ /sbin/ip addr show>/tmp/settings1.txt 2>&1
$ /sbin/ip addr show>/tmp/settings1.txt 2>/tmp/errors.txt
# ip link show
# tcpdump –i eth1
# rpm –ihv tcpdump-4.0.0-3.20090921gitdf3cb4.fc12.i686.rpm
# yum install tcpdump
$ ping –c1 172.16.2.2
# ifconfig eth0 mtu 1000
# ip link set eth0 mtu 1000
# ifconfig eth0 192.168.1.3/24 netmask 255.255.255.0
# ifconfig eth0
# ip addr add 192.168.1.5/24 dev eth0
# ifconfig eth0
# ip addr show
# ping –c2 192.168.1.5
# ip addr del 192.168.1.5/24 dev eth0
# ping –c2 192.168.1.5
----------------------------------------------------------------------------------------------------------------- |