понедельник, 23 июля 2007 г.
Работа с saftware raid
cat /proc/mdstat
- просмотр состояния raid
mdadm --fail /dev/md0 /dev/sdb1
- пометить диск sdb1 как сбойный
mdadm --remove /dev/md0 /dev/sdb1
- исключить из raid диск sdb1
mdadm --add /dev/md0 /dev/sdb1
- включить в raid диск sdb1. Последует пересборка массива.
четверг, 12 июля 2007 г.
Вариант скрипта переключения канала на резервный
#!/usr/bin/perl
use File::Basename;
use Sys::Syslog qw(:DEFAULT setlogsock);
use Proc::Daemon;
use strict;
use warnings;
my $me = basename($0);
my $pidfile = "/var/run/$me.pid";
if ( -e $pidfile ) {
print "Script is runing! Exist $pidfile";
exit;
}
my $alert_email = "my\@my.ru";
my $from = "my\@my.ru";
my $check;
my $ext_gw_a = "x.x.x.x";
my $ext_gw_b = "y.y.y.y";
my $curent_gw = $ext_gw_a;
my $cmd_ping = "/sbin/ping -q -c 2";
my $cmd_mail="/usr/sbin/sendmail -t";
# mail.ru 194.67.57.26
# f.root-servers.net 192.5.5.241
# ya.ru 87.250.251.8
# rambler.ru 81.19.70.3
# google.com 64.233.167.99
my @targets = ('194.67.57.26','192.5.5.241','87.250.251.8','81.19.70.3','64.233.167.99');
sub ping {
my ($host) = @_;
my $ping_output = `$cmd_ping $host`;
if ($ping_output =~ /100\% packet loss/){
return 0;
} else {
return 1;
}
}
sub send_mail {
my ($subj) = @_;
open (SENDMAIL, "|$cmd_mail") || syslog('warning', "Can not run sendmail - %m");
print SENDMAIL "MIME-Version: 1.0\n";
print SENDMAIL "Content-Type: text/plain; charset=\"koi8-r\"\n";
print SENDMAIL "Content-Transfer-Encoding: 8bit\n";
print SENDMAIL "To: $alert_email\n";
print SENDMAIL "From: MONITORING $from\n";
print SENDMAIL "Subject: ALERT: $subj\n\n";
close (SENDMAIL);
}
sub change_dg {
my ($defg) = @_;
my $time = scalar localtime;
my $soobsh = "Switch $defg / $time";
my $cmd_netstat = '/usr/bin/netstat -nr |/usr/bin/grep default';
my $DGB=`$cmd_netstat`;
unless ($DGB =~ /$defg/) {
system("/sbin/route delete default");
system("/sbin/route add default $defg");
syslog('info', $soobsh);
send_mail($soobsh);
}
}
Proc::Daemon::Init;
open (PID,">$pidfile") || die "cannot create pidfile $!";
print PID $$;
close (PID);
setlogsock('unix');
openlog ('rezerv', 'ndelay,pid', 'local0');
syslog('info', 'Starting rezerv test');
$SIG{INT} = \&SHUTDOWN;
$SIG{TERM} = \&SHUTDOWN;
# При старте задаём провайдера №1 (по умолчанию)
change_dg($ext_gw_a);
my ($prow1,$prow2,$up_hosts);
for (;;) {
# Проверяем работу шлюзов провайдеров
if (ping($ext_gw_a)) {
$prow1=1;
}else{
$prow1=0;
}
if (ping($ext_gw_b)) {
$prow2=1;
}else{
$prow2=0;
}
# Выясняем есть ли смысл пинговать удалённые хосты (если шлюз неработает - не пингуем)
if ((($curent_gw =~ /$ext_gw_a/) && ($prow1)) or (($curent_gw =~ /$ext_gw_b/) && ($prow2))) {
foreach my $host (@targets) {
$up_hosts++ if ping($host);
}
}
# Переключение на рабочего провайдера
if ($curent_gw =~ /$ext_gw_a/ ) {
if (!$prow1 or !$up_hosts){
if ($prow2) {
change_dg($ext_gw_b);
$curent_gw=$ext_gw_b;
}
}
}
if ($curent_gw =~ /$ext_gw_b/ ) {
if (!$prow2 or !$up_hosts){
if ($prow1) {
change_dg($ext_gw_a);
$curent_gw=$ext_gw_a;
}
}
}
# Переключение на провайдера по умолчанию если он стал вновь доступен
if (($curent_gw =~ /$ext_gw_b/ ) && ($prow1)) {
change_dg($ext_gw_a);
$curent_gw=$ext_gw_a;
}
sleep(40);
}
sub SHUTDOWN() {
unlink($pidfile);
closelog();
exit;
}
вторник, 10 июля 2007 г.
Создание резервных копий с помощью именованных каналов
Пример A-17. fifo: Создание резервных копий с помощью именованных каналов
#!/bin/bash
# ==> Автор:James R. Van Zandt
# ==> используется с его разрешения.
# ==> Комментарии, добавленные автором документа.
HERE=`uname -n` # ==> hostname
THERE=bilbo
echo "начало создания резервной копии на $THERE, за `date +%r`"
# ==> `date +%r` возвращает время в 12-ти часовом формате, т.е. "08:08:34 PM".
# убедиться в том, что /pipe -- это действительно канал, а не простой файл
rm -rf /pipe
mkfifo /pipe # ==> Создание "именованного канала", с именем "/pipe".
# ==> 'su xyz' -- запускает команду от имени порльзователя "xyz".
# ==> 'ssh' -- вызов secure shell (вход на удаленную систему).
su xyz -c "ssh $THERE \"cat >/home/xyz/backup/${HERE}-daily.tar.gz\" < /pipe"& cd / tar -czf - bin boot dev etc home info lib man root sbin share usr var >/pipe
# ==> Именованный канал /pipe, используется для передачи данных между процессами:
# ==> 'tar/gzip' пишет в /pipe, а 'ssh' -- читает из /pipe.
# ==> В результате будет получена резервная копия всех основных каталогов.
# ==> В чем состоит преимущество именованного канала, в данной ситуации,
# ==> перед неименованным каналом "|" ?
# ==> Будет ли работать неименованный канал в данной ситуации?
exit 0
Переключение на резервный канал
(http://www.opennet.ru/openforum/vsluhforumID1/74322.html):
ip route add default via 1.1.1.1 dev eth0 metric 5
ip route add default via 2.2.2.2 dev eth1 metric 15
http://lartc.org/
вторник, 3 июля 2007 г.
Изменение конфигурации Squid института химии
acl webRadioReq1 req_mime_type -i ^video/x-ms-asf$
acl webRadioReq2 req_mime_type -i ^application/vnd.ms.wms-hdr.asfv1$
acl webRadioReq3 req_mime_type -i ^application/x-mms-framed$
acl webRadioRep1 rep_mime_type -i ^video/x-ms-asf$
acl webRadioRep2 rep_mime_type -i ^application/vnd.ms.wms-hdr.asfv1$
acl webRadioRep3 rep_mime_type -i ^application/x-mms-framed$
acl WMP browser Windows-Media-Player/*
http_access deny WMP all
http_access deny webRadioReq1 all
http_access deny webRadioReq2 all
http_access deny webRadioReq3 all
http_reply_access deny webRadioRep1 all
http_reply_access deny webRadioRep2 all
http_reply_access deny webRadioRep3 all
Ярлыки
- 11g (3)
- 9i (3)
- аксон (1)
- институт химии (3)
- интересно (2)
- медицина (1)
- радар детектор (1)
- радардетектор (1)
- api (1)
- auth (1)
- bash (1)
- bind (1)
- bios (1)
- dba (5)
- debian (10)
- development (1)
- dns (1)
- email (2)
- etch (1)
- exim (1)
- extend (1)
- facebook (1)
- ftp (1)
- g1000 (1)
- harddisk (2)
- hardware (1)
- hp (1)
- hp-ux (2)
- iscsi (1)
- iscsitarget (1)
- kpartx (1)
- lenny (3)
- linux (12)
- listener (1)
- lvm (1)
- mail (5)
- msi (1)
- mssql (1)
- named (1)
- ntlm (1)
- online (1)
- oracle (9)
- partprobe (1)
- pi (1)
- pipe (1)
- postfix (2)
- proftpd (1)
- proxy (1)
- python (1)
- python3 (1)
- raid (3)
- raspberry pi (1)
- raspbian (1)
- rss (1)
- san (1)
- screen (1)
- sendmail (2)
- sho me (1)
- shome (1)
- sid (1)
- smart host (1)
- smartarray (1)
- smarthost (1)
- smtp (1)
- squid (1)
- ssh (3)
- su (1)
- sudo (1)
- svn (1)
- sysadmin (5)
- u100 (1)
- unix (3)
- utl_mail (1)
- utl_smtp (1)
- virtualbox (3)
- virtualization (3)
- vmware (2)
- web (1)
- wiki (1)
- zabbix (1)
- zoneminder (1)
Архив блога
- ноября 2020 (1)
- апреля 2018 (1)
- апреля 2017 (1)
- августа 2016 (1)
- апреля 2016 (1)
- февраля 2015 (1)
- ноября 2014 (1)
- сентября 2014 (1)
- мая 2014 (1)
- марта 2014 (2)
- февраля 2014 (1)
- января 2014 (1)
- ноября 2013 (1)
- июля 2013 (1)
- июня 2013 (1)
- мая 2013 (3)
- апреля 2013 (3)
- марта 2013 (2)
- февраля 2013 (1)
- января 2013 (1)
- октября 2012 (2)
- мая 2012 (1)
- марта 2012 (1)
- июня 2010 (1)
- мая 2010 (1)
- декабря 2009 (1)
- августа 2009 (1)
- июля 2009 (3)
- мая 2009 (1)
- апреля 2009 (3)
- марта 2009 (1)
- февраля 2009 (2)
- июня 2008 (1)
- мая 2008 (1)
- ноября 2007 (2)
- августа 2007 (2)
- июля 2007 (4)