Знакомьтесь, 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 -----------------------------------------------------------------------------------------------------------------