print 0 == None
False
И за такое его стоит любить :)
print 0 == None
False
@reboot Run once, at startup.
apt-get install libapache2-mod-rpaf -y --force-yes
ifconfig -a
vi /etc/apache2/mods-enabled/rpaf.conf
/etc/init.d/apache2 restart
vi /etc/security/limits.conf
* - stack 1024
top - 18:32:46 up 3 min, 1 user, load average: 0.03, 0.10, 0.05
Tasks: 25 total, 1 running, 24 sleeping, 0 stopped, 0 zombie
Cpu(s): 1.9%us, 0.3%sy, 0.0%ni, 97.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 102400k total, 49368k used, 53032k free, 0k buffers
Swap: 0k total, 0k used, 0k free, 0k cached
top - 18:35:28 up 0 min, 1 user, load average: 0.73, 0.19, 0.06
Tasks: 25 total, 1 running, 24 sleeping, 0 stopped, 0 zombie
Cpu(s): 2.8%us, 3.3%sy, 0.0%ni, 94.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 102400k total, 51120k used, 51280k free, 0k buffers
Swap: 0k total, 0k used, 0k free, 0k cached
Когда ты молодой:
1. Тело красивое
2. Здоровье богатырское
3. Желаний море
4. Возможностей мало
Когда ты вырос:
1. Тело постаревшее
2. Здоровье подорванное
3. Желаний все меньше
4. Возможности есть, но зачем они тебе уже?
#! /bin/sh
# /etc/init.d/sphinx: start the sphinx search daemon.
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
pidfile=/var/sphinx/run/searchd.pid
binpath=/var/sphinx/bin/searchd
SPHINX="--config /var/sphinx/etc/sphinx.conf"
NAME=searchd
DESC="sphinx search daemon"
test -f $binpath || exit 0
test ! -r /etc/default/sphinx || . /etc/default/sphinx
running()
{
# No pidfile, probably no daemon present
#
if [ ! -f $pidfile ]
then
return 1
fi
pid=`cat $pidfile`
# No pid, probably no daemon present
#
if [ -z "$pid" ]
then
return 1
fi
if [ ! -d /proc/$pid ]
then
return 1
fi
cmd=`cat /proc/$pid/cmdline | tr "\000" "\n"|head -n 1`
# No syslogd?
#
if [ "$cmd" != "$binpath" ]
then
return 1
fi
return 0
}
case "$1" in
start)
echo -n "Starting sphinx search daemon: searchd"
start-stop-daemon --start --quiet --chuid 999 --group 999 --exec $binpath -- $SPHINX
echo "."
;;
stop)
echo -n "Stopping sphinx search daemon: searchd"
start-stop-daemon --stop --chuid 999 --group 999 --retry TERM/1/TERM/1/TERM/4/KILL --quiet --exec $binpath --pidfile $pidfile
echo "."
;;
restart|force-reload)
echo -n "Restarting sphinx search daemon: searchd"
start-stop-daemon --stop --chuid 999 --group 999 --retry TERM/1/TERM/1/TERM/4/KILL --quiet --exec $binpath --pidfile $pidfile
start-stop-daemon --start --chuid 999 --group 999 --quiet --exec $binpath -- $SPHINX
echo "."
;;
*)
echo "Usage: /etc/init.d/shpinx {start|stop|restart|force-reload}"
exit 1
esac
exit 0
netstat -ln
netstat -ln -t
sudo yum -y install psacct
sudo /etc/init.d/psacct start
sudo /sbin/chkconfig psacct on
sudo /usr/sbin/sa -u
sudo /usr/sbin/sa
Each time a process terminates a record for this process is appended to the accounting file.
vi /etc/named.conf
vi /etc/bind/named.conf.options
options {
allow-recursion { localnets; localhost; };
};
/etc/init.d/named restart
/etc/init.d/bind9 restart
apt-get install -y apache2-suexec
Processing triggers for initramfs-tools ...
update-initramfs: Generating /boot/initrd.img-2.6.26-2-xen-686
Errors were encountered while processing:
linux-image-2.6.26-2-xen-686
linux-image-2.6-xen-686
E: Sub-process /usr/bin/dpkg returned an error code (1)
apt-get dist-upgrade
Reading package lists... Done
Building dependency tree... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
2 not fully installed or removed.
After this operation, 0B of additional disk space will be used.
Do you want to continue [Y/n]? y
Setting up linux-image-2.6.26-2-xen-686 (2.6.26-19lenny2) ...
update-initramfs: Generating /boot/initrd.img-2.6.26-2-xen-686
Searching for GRUB installation directory ... found: /boot/grub
warning: grub-probe can't find drive for /dev/sda1.
grub-probe: error: Cannot find a GRUB drive for /dev/sda1. Check your device.map.
dpkg: error processing linux-image-2.6.26-2-xen-686 (--configure):
subprocess post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of linux-image-2.6-xen-686:
linux-image-2.6-xen-686 depends on linux-image-2.6.26-2-xen-686; however:
Package linux-image-2.6.26-2-xen-686 is not configured yet.
dpkg: error processing linux-image-2.6-xen-686 (--configure):
dependency problems - leaving unconfigured
Errors were encountered while processing:
linux-image-2.6.26-2-xen-686
linux-image-2.6-xen-686
E: Sub-process /usr/bin/dpkg returned an error code (1)
apt-get remove grub
Паксы (от аббревиатуры в перевозочной документации на английском – PAX) – пассажиры самолёта.
Это ведь очень по-русски: сначала создать себе трудности, потом героически их преодолевать.
— А на самом деле, это следствие подмены целей. И борьбой здесь даже не пахнет. Помнишь, Николай Бударин садился в БС (баллистический спуск). Собирают совещание. Вопрос: почему экипаж долго искали? Докладывают: можем сделать требуемую систему, но для этого необходимо пять лет и столько-то денег. Тут космонавт Павел Виноградов берет слово: «Зачем так сложно. Зайдите в ближайший магазин и купите спутниковый телефон».
import random
"import md5" is giving you an unresolved import error right? Do you have an
md5.py file in your pythonpath? (or only .pyc/.pyo?)
--
Just the .pyc/.pyo as far as I can tell. This is the default MacOS Python
install
(2.5.1).
macbook-pavel-odincov:~ nrg$ ls /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/ | grep md5
md5.pyc
md5.pyo
macbook-pavel-odincov:~ nrg$ ls /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/ | grep random
random.pyc
random.pyo
Just to follow up: that did the trick. For any other Mac developers that have
the same problem, installing Xcode is a quick fix; it's got the .py sources
included.
ls /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/ | grep random
random.py
random.pyc
random.pyo
Вчера, 25-го ноября 2009-го года был первый день регистрации доменов в зоне .рф. По его итогам домены получили популярные в Рунете проекты и киберсквоттеры, заранее подготовившиеся к запуску национального домена.
Так, компания Cetis, по мнению ряда участников домейнерского рынка, аффилированная с регистратором Reg.ru, подготовив заранее ряд товарных марок вроде "Банк", зарегистрированных по классу "Зонты", получила ряд доменов, имеющих высокую коммерческую привлекательность. Среди них уже упоминавшийся "банк.рф", "недвижимость.рф", "секс.рф" и другие.
#!/usr/bin/python
print "hello world!".upper()
cat /proc/18281/status
Name: ispmgr
State: S (sleeping)
SleepAVG: 78%
Tgid: 18281
Pid: 18281
PPid: 1
TracerPid: 0
FNid: 6041
Uid: 0 0 0 0
Gid: 0 0 0 0
FDSize: 256
Groups: 33
envID: 6041
VPid: 18281
PNState: 0
StopState: 0
VmPeak: 35368 kB
VmSize: 35364 kB
VmLck: 0 kB
VmHWM: 8936 kB
VmRSS: 8788 kB
VmData: 23984 kB
VmStk: 84 kB
VmExe: 860 kB
VmLib: 9824 kB
VmPTE: 64 kB
StaBrk: 08d85000 kB
Brk: 090a0000 kB
StaStk: bff4e490 kB
Threads: 1
SigQ: 0/38912
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000001000
SigCgt: 0000000180006000
SigSvd: 0000000000000000
CapInh: 000000007dcceeff
CapPrm: 000000007dcceeff
CapEff: 000000007dcceeff
Cpus_allowed: ffffffff
Mems_allowed: 1
TaskUB: 6041
MMUB: 6041
nice -n 19 processname
dpkg -i linux-image-2.6.30-2-686-bigmem_2.6.30-8_i386.deb
shutdown -r now
uname -r
2.6.30-2-686-bigmem
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
proxy_buffers 8 16k;
proxy_buffer_size 32k;
proxy_buffer_size and fastgci_buffer_size set buffer to read the whole of
response header from backend or fastcgi server.
Restarting nginx: [emerg]: "proxy_busy_buffers_size" must be less than the size of all "proxy_buffers" minus one buffer in /etc/nginx/nginx.conf:34017
proxy_buffers 8 32k;
proxy_buffer_size 64k;
apt-get install -y iotop
iotop
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
yum install -y lighttpd lighttpd-fastcgi php-cli
chkconfig lighttpd on
/etc/init.d/lighttpd start
vi /etc/php.ini
cgi.fix_pathinfo = 1
vi /etc/lighttpd/lighttpd.conf
#fastcgi.server = ( ".php" =>
# ( "localhost" =>
# (
# "socket" => "/var/run/lighttpd/php-fastcgi.socket",
# "bin-path" => "/usr/bin/php-cgi"
# )
# )
# )
# "mod_fastcgi",
/etc/init.d/lighttpd restart
echo "<?PHP phpinfo(); ?>" > /var/www/lighttpd/info.php
Оператор интернет-платежей «А1 Агрегатор» обращает внимание на запрет работы в системе следующих сервисов:
GSM-Пеленгаторы (поиск абонента по номеру);
GSM-Перехватчики звонков, SMS и другой конфиденциальной информации;
GSM-киллер (информационная атака на абонента).
Использование коротких номеров компании для предоставления подобных услуг строго запрещено. «А1 Агрегатор» начинает широкомасштабный мониторинг партнеров для контроля соблюдения данного правила. Компания А1А оставляет за собой право применять к нарушителям, проигнорировавшим данное сообщение, штрафные санкции вплоть до блокировки аккаунта и удержании 100% дохода.
Немецкий форум — задал вопрос, на него ответили.
Израильский форум — задал вопрос, тебе задали вопрос.
Русский форум — задал вопрос и тебе долго будут объяснять какой ты мудак.
vi /etc/rc.confдобавить строки (вторая строка запрещает фоновый запуск проверки, который может привести к проблемам):
fsck_y_enable="YES"
background_fsck="NO"
fsck -y /dev/ad6s1a
pkg_add -r portsnap # часто он уже стоит, так что проверьте его наличие
portsnap fetch ; portsnap extract
portsnap update
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD 7.2-RELEASE (GENERIC) #0: Fri May 1 08:49:13 UTC 2009
cat /etc/resolv.conf
nameserver 213.133.98.98
nameserver 213.133.99.99
nameserver 213.133.100.100
ifconfig re0
re0: flags=8843metric 0 mtu 1500
options=389b
ether 00:16:17:ea:ff:3d
inet 85.10.193.55 netmask 0xffffffe0 broadcast 85.10.193.63
media: Ethernet autoselect (100baseTX)
status: active
netstat -rn
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 85.10.193.33 UGS 0 5213 re0
85.10.193.32/27 link#1 UC 0 0 re0
85.10.193.33 00:26:88:76:01:87 UHLW 2 0 re0 634
127.0.0.1 127.0.0.1 UH 0 0 lo0
255.255.255.255 0.0.0.0 UHb 0 0 plip0
Internet6:
Destination Gateway Flags Netif Expire
::1 ::1 UHL lo0
fe80::%lo0/64 fe80::1%lo0 U lo0
fe80::1%lo0 link#3 UHL lo0
ff01:3::/32 fe80::1%lo0 UC lo0
ff02::%lo0/32 fe80::1%lo0 UC lo0
ls /dev/ad*
/dev/ad4 /dev/ad4s2 /dev/ad6 /dev/ad6s2
/dev/ad4s1 /dev/ad4s3 /dev/ad6s1 /dev/ad6s3
fdisk -BI /dev/ad4
******* Working on device /dev/ad4 *******
fdisk: Geom not found: "ad4"
******* Working on device /dev/ad4 *******
fdisk: Class not found
ls /dev/ad4*
/dev/ad4 /dev/ad4s1
fdisk /dev/ad4
******* Working on device /dev/ad4 *******
parameters extracted from in-core disklabel are:
cylinders=581421 heads=16 sectors/track=63 (1008 blks/cyl)
Figures below won't work with BIOS for partitions not in cyl 1
parameters to be used for BIOS calculations are:
cylinders=581421 heads=16 sectors/track=63 (1008 blks/cyl)
Media sector size is 512
Warning: BIOS sector numbering starts with sector 1
Information from DOS bootblock is:
The data for partition 1 is:
sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
start 63, size 586072305 (286168 Meg), flag 80 (active)
beg: cyl 0/ head 1/ sector 1;
end: cyl 812/ head 15/ sector 63
The data for partition 2 is:
The data for partition 3 is:
The data for partition 4 is:
bsdlabel -wB /dev/ad4s1
bsdlabel -e /dev/ad4s1
# /dev/ad4s1:
8 partitions:
# size offset fstype [fsize bsize bps/cpg]
a: 586072289 16 unused 0 0
c: 586072305 0 unused 0 0 # "raw" part, don't edit
# /dev/ad4s1:
8 partitions:
# size offset fstype [fsize bsize bps/cpg]
a: * 16 4.2BSD 0 0
b: 4G * swap 0 0
c: * 0 unused 0 0 # "raw" part, don't edit
# /dev/ad4s1:
8 partitions:
# size offset fstype [fsize bsize bps/cpg]
a: 2G 16 4.2BSD 0 0 # /
b: 20G * swap 0 0
d: 100G * 4.2BSD 0 0 # /var
e: 8G * 4.2BSD 0 0 # /tmp
f: * * 4.2BSD 0 0 # /usr
ls /dev/ad4*
/dev/ad4 /dev/ad4s1 /dev/ad4s1a /dev/ad4s1b /dev/ad4s1c
newfs /dev/ad4s1a
mount /dev/ad4s1a /mnt
sysinstall
213.133.99.100:/nfs/freebsd/8.0_32
213.133.99.100:/nfs/freebsd/8.0_64
213.133.99.100:/nfs/freebsd/64
213.133.99.100:/nfs/freebsd/32
ls /mnt
.cshrc COPYRIGHT dev libexec proc sbin usr
.profile bin etc media rescue sys var
.snap boot lib mnt root tmp
Последние настройки
chroot /mnt
chroot /mnt
chroot: /usr/local/bin/bash: No such file or directory
chroot /mnt /bin/sh
cp -Rp /boot/GENERIC/* /boot/kernel/
vi /etc/rc.conf
hostname="rechnername.domain.tld"
sshd_enable="YES"
ifconfig_re0="DHCP"
sendmail_enable="NONE"
fsck_y_enable="YES"
background_fsck="NO"
vi /etc/resolv.conf
nameserver 213.133.98.98
nameserver 213.133.99.99
nameserver 213.133.100.100
vi /etc/fstab
# dev mnt type opt dump pass
/dev/ad4s1b none swap sw 0 0
/dev/ad4s1a / ufs rw 1 1
/dev/ad4s1a / ufs rw 1 1
/dev/ad4s1b none swap sw 0 0
/dev/ad4s1d /var ufs rw 1 1
/dev/ad4s1e /tmp ufs rw 1 1
/dev/ad4s1f /usr ufs rw 1 1
passwd
vi /etc/ssh/sshd_config
umount /mnt
shutdown -r now
uname -a
FreeBSD rechnername.domain.tld 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May 1 08:49:13 UTC 2009 root@walker.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386
fsck /dev/ad6s1a
Мы принципиально не работаем с частными лицами, политическими и религиозными организациями, мудаками, а также с теми, чьи убеждения противоречат нашим.
apt-get install clamav -y
yum install -y clamav clamav-update
freshclam
freshclam
ERROR: Please edit the example config file /etc/freshclam.conf
ERROR: Can't open/parse the config file /etc/freshclam.conf
vi /etc/freshclam.conf
# Comment or remove the line below.
Example
clamscan --infected -r /
apt-get install rkhunter -y
yum -y install rkhunter
rkhunter --update # обновление базы руткитов
rkhunter --check
apt-get install -y chkrootkit
yum -y install chkrootkit
chkrootkit
apt-get install -y tiger
tiger
cat /proc/mdstat
Personalities : [raid1] [raid10] [raid0] [raid6] [raid5] [raid4]
md0 : active raid1 sdb1[1] sda1[0]
4200896 blocks [2/2] [UU]
md1 : active raid1 sdb2[1] sda2[0]
2104448 blocks [2/2] [UU]
md2 : active raid1 sdb3[1] sda3[0]
286728000 blocks [2/2] [UU]
unused devices:
mdadm /dev/md0 --fail /dev/sda1
mdadm /dev/md1 --fail /dev/sda2
mdadm /dev/md2 --fail /dev/sda3
cat /proc/mdstat
Personalities : [raid1] [raid10] [raid0] [raid6] [raid5] [raid4]
md0 : active raid1 sdb1[1] sda1[2](F)
4200896 blocks [2/1] [_U]
md1 : active raid1 sdb2[1] sda2[2](F)
2104448 blocks [2/1] [_U]
md2 : active raid1 sdb3[1] sda3[2](F)
286728000 blocks [2/1] [_U]
unused devices:
cat /proc/mdstat
Personalities : [raid1] [raid10] [raid0] [raid6] [raid5] [raid4]
md0 : active raid1 sdb1[1]
4200896 blocks [2/1] [_U]
md1 : active raid1 sdb2[1]
2104448 blocks [2/1] [_U]
md2 : active raid1 sdb3[1]
286728000 blocks [2/1] [_U]
unused devices:
mdadm /dev/md0 --remove /dev/sda1
mdadm /dev/md1 --remove /dev/sda2
mdadm /dev/md2 --remove /dev/sda3
mdadm /dev/md0 --remove -f /dev/sda1
mdadm /dev/md1 --remove -f /dev/sda2
mdadm /dev/md2 --remove -f /dev/sda3
fdisk /dev/sdaи далее последовательно командой d удаляем все разделы
fdisk -l /dev/sda
Disk /dev/sda: 300.0 GB, 300069052416 bytes
255 heads, 63 sectors/track, 36481 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
sfdisk -d /dev/sdb | sfdisk /dev/sda
fdisk /dev/sda -l
Disk /dev/sda: 300.0 GB, 300069052416 bytes
255 heads, 63 sectors/track, 36481 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 523 4200966 fd Linux raid autodetect
/dev/sda2 524 785 2104515 fd Linux raid autodetect
/dev/sda3 786 36481 286728120 fd Linux raid autodetect
grub-install /dev/sda
Installation finished. No error reported.
This is the contents of the device map /boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install'.
(hd0) /dev/sda
(hd1) /dev/sdb
grub /dev/sda
grub>
grub> root (hd0,0) # указать, где находится каталог /boot/grub на вторичном диске
grub> setup (hd0) # установить GRUB-загрузчик в MBR вторичного диска
grub> quit
mdadm /dev/md0 -a /dev/sda1
mdadm /dev/md1 -a /dev/sda2
mdadm /dev/md2 -a /dev/sda3
cat /proc/mdstat
Personalities : [raid1] [raid10] [raid0] [raid6] [raid5] [raid4]
md0 : active raid1 sda1[0] sdb1[1]
4200896 blocks [2/2] [UU]
md1 : active raid1 sda2[0] sdb2[1]
2104448 blocks [2/1] [_U]
resync=DELAYED
md2 : active raid1 sda3[2] sdb3[1]
286728000 blocks [2/1] [_U]
[>....................] recovery = 0.0% (150592/286728000) finish=95.1min speed=50197K/sec
unused devices:
rc-config show
Status of init scripts in runlevel "default"
local [stopped]
net.venet0 [stopped]
netmount [stopped]
nginx [stopped]
spawn-fcgi.trac [stopped]
sshd [stopped]
udev-postmount [stopped]
vzquota [stopped]
rc-config delete mysql
Deleting mysql from following runlevels
default [done]
yum install binutils -y
<Directory /usr/share/phpmyadmin>
php_admin_value eaccelerator.enable 0
</Directory>
vi /etc/httpd/conf.d/phpmyadmin.conf
php_admin_value eaccelerator.enable 0
/etc/init.d/httpd restart
vi /etc/apache2/conf.d/phpmyadmin.conf
php_admin_value eaccelerator.enable 0
/etc/init.d/apache2 restart
apachectl -M
А когда вы начали его продавать?
Это бесплатный Open source продукт.
ОК, но вы же должны как-то зарабатывать деньги. Продавали техподдержку?
Да, мы сначала мы продавали поддержку. Но это не очень хорошая модель для Open source.
Red Hat вроде бы на ней зарабатывет.
Red Hat еще продает лицензии, то есть там не только поддержка.
люди склонны покупать поддержку только тогда, когда они в ней нуждаются
Проблема с поддержкой в Open source в том, что люди склонны покупать поддержку только тогда, когда они в ней нуждаются. Они пользуются продуктом несколько месяцев, потом у них появляется проблема и они пытаются обращаться за поддержкой. Сложно построить и масштабировать бизнес на таком. Итак, поддержку мы пробовали в первый год. Это не работает на самом деле. Это не работает для многих Open source компаний.
Почему же вы поставили на первое место поддержку?
Потому что это выглядело многообещающим. Мы думали, что для людей, занимающихся электронной коммерцией — это критично-важное приложение. Но продукт оказался слишком хорошим, и люди были очень довольны. Они, конечно же, просили улучшений, но так как им бы пришлось платить за поддержку, они говорили: «ОК, мы можем смириться с этой проблемой, мы подождем пока». Честно говоря, есть много Open source проектов, чьи продукты слишком хороши, чтобы обращаться за поддержкой, продукт работают, люди, используя его, могут вести бизнес и вместо того, чтобы платить за поддержку предпочитают подождать пару месяцев, пока проблема и так будет решена в продукте.
ОК, продажа поддержки не работает. И что дальше?
Мы создали enterprise edition, основанную на Open source, а также community edition, которая включает некоторые новые модули, доступные только для пользователей enterprise edition в комплекте с поддержкой. Эта версия лицензируется на каждый сервер. Так работает MySQL AB, например.
Мы запустили это в мае 2009 и за первые три месяца подписали свыше 60 клиентов.
Мне кажется, что не может быть так много магазинов в интернете.
Это один из самых быстрорастущих рынков в мире. США в этом лидируют, но Западная Европа не сильно отстает, Дальний Восток…
Компанией владеют только американцы или же какая-то доля есть у украинских разработчиков? Иными словами, есть ли какие-то схеми мотивациии, помимо просто зарплаты.
Владеют компанией только американцы. Наша мотивация — зарплата.
Mem: 8193844k total, 5646272k used, 2547572k free, 288384k buffers
Swap: 4200888k total, 0k used, 4200888k free, 4446864k cached
echo 3 > /proc/sys/vm/drop_caches
echo 1 > /proc/sys/vm/drop_caches
echo 2 > /proc/sys/vm/drop_caches
cat /proc/meminfoа вот хорошее описание всех параметров: http://www.itcommunity.ru/blogs/am/archive/2009/01/13/46080.aspx
pidof apache2
pidof apache2 | sed 's/\([0-9]*\)/\-p \1/g'
strace -s 1024 -f $(pidof apache2 | sed 's/\([0-9]*\)/\-p \1/g')
strace -s 1024 -f $(pidof httpd | sed 's/\([0-9]*\)/\-p \1/g')
А вот боеле гибкий вариант для выборки процессов по регулярному выражению:
strace -s 1024 -f $(pidof php5-cgi | sed 's/\([0-9]*\)/\-p \1/g')
strace -s 1024 -f $(pgrep php5-fastcgi | sed 's/\([0-9]*\)/\-p \1/g')
Для php5-fpm:
strace -s 1024 -f $(pidof nginx | sed 's/\([0-9]*\)/\-p \1/g')
strace -s 1024 -f $(pidof php5-fpm | sed 's/\([0-9]*\)/\-p \1/g')Для Apache wsgi:
strace -s 1024 -f $(ps aux|grep wsgi|grep -v 'grep'|awk '{print $2}'| sed 's/\([0-9]*\)/\-p \1/g')
locale -a
C
en_US.utf8
POSIX
apt-get install -y locales-all
cat /proc/modules
single init=/bin/bash
ListOptions "-l"
ListOptions "-la"
/etc/init.d/proftpd restart
fdisk -l
Disk /dev/sda: 300.0 GB, 300069052416 bytes
255 heads, 63 sectors/track, 36481 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 523 4200966 82 Linux swap / Solaris
/dev/sda2 524 785 2104515 83 Linux
/dev/sda3 786 36481 286728120 83 Linux
Disk /dev/sdb: 300.0 GB, 300069052416 bytes
255 heads, 63 sectors/track, 36481 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdb doesn't contain a valid partition table
fdisk /dev/sdb
n
p
1
[enter]
523 # соответствует значению End напротив /dev/sda1 из таблицы выше
w
fdisk /dev/sdb
n
p
2
[enter]
785 # соответствует значению End напротив /dev/sda2 из таблицы выше
fdisk /dev/sdb
n
p
3
[enter]
[enter]
w
fdisk -l
Disk /dev/sda: 300.0 GB, 300069052416 bytes
255 heads, 63 sectors/track, 36481 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 523 4200966 82 Linux swap / Solaris
/dev/sda2 524 785 2104515 83 Linux
/dev/sda3 786 36481 286728120 83 Linux
Disk /dev/sdb: 300.0 GB, 300069052416 bytes
255 heads, 63 sectors/track, 36481 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 523 4200966 83 Linux
/dev/sdb2 524 785 2104515 83 Linux
/dev/sdb3 786 36481 286728120 83 Linux
sfdisk -d /dev/sda | sfdisk /dev/sdbона работает отлично, также рекомендую, как более простой путь :)
fdisk /dev/sdb
Command (m for help): t
Partition number (1-4): 1
Hex code (type L to list codes): fd
Changed system type of partition 1 to fd (Linux raid autodetect)
Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): fd
Changed system type of partition 2 to fd (Linux raid autodetect)
Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): fd
Changed system type of partition 3 to fd (Linux raid autodetect)
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
fdisk -l
Disk /dev/sda: 300.0 GB, 300069052416 bytes
255 heads, 63 sectors/track, 36481 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 523 4200966 82 Linux swap / Solaris
/dev/sda2 524 785 2104515 83 Linux
/dev/sda3 786 36481 286728120 83 Linux
Disk /dev/sdb: 300.0 GB, 300069052416 bytes
255 heads, 63 sectors/track, 36481 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 523 4200966 fd Linux raid autodetect
/dev/sdb2 524 785 2104515 fd Linux raid autodetect
/dev/sdb3 786 36481 286728120 fd Linux raid autodetect
mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdb1
mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sdb2
mdadm --create /dev/md2 --level=1 --raid-disks=2 missing /dev/sdb3
mkswap /dev/md0
mkfs.ext3 /dev/md1
mkfs.ext3 /dev/md2
mkdir -p /etc/mdadm
/sbin/mdadm --examine --scan > /etc/mdadm/mdadm.conf
Перенос данных
/dev/sda2 on /boot type ext3 (rw)
/dev/sda3 on / type ext3 (rw)
mkdir /mnt/md1
mount /dev/md1 /mnt/md1
cp -axu /boot/* /mnt/md1
sync
umount /mnt/md1
root@CentOS-54-32-minimal /etc # ls /mnt/md1
boot message
config-2.6.18-164.6.1.el5PAE symvers-2.6.18-164.6.1.el5PAE.gz
grub System.map-2.6.18-164.6.1.el5PAE
initrd-2.6.18-164.6.1.el5PAE.img vmlinuz-2.6.18-164.6.1.el5PAE
lost+found
root@CentOS-54-32-minimal /etc # ls /boot
boot message
config-2.6.18-164.6.1.el5PAE symvers-2.6.18-164.6.1.el5PAE.gz
grub System.map-2.6.18-164.6.1.el5PAE
initrd-2.6.18-164.6.1.el5PAE.img vmlinuz-2.6.18-164.6.1.el5PAE
lost+found
yum install -y screen
screen
mkdir /mnt/md2
mount /dev/md2 /mnt/md2/
cp -axu / /mnt/md2
root@CentOS-54-32-minimal /etc # ls /mnt/md2/
bin dev home lib media opt root selinux sys usr
boot etc installimage.conf lost+found mnt proc sbin srv tmp var
root@CentOS-54-32-minimal /etc # ls /
bin dev home lib media opt root selinux sys usr
boot etc installimage.conf lost+found mnt proc sbin srv tmp var
vi /mnt/md2/etc/fstab
/dev/sda1 none swap sw 0 0
/dev/sda2 /boot ext3 defaults 0 0
/dev/sda3 / ext3 defaults 0 0
/dev/md0 none swap sw 0 0
/dev/md1 /boot ext3 defaults 0 0
/dev/md2 / ext3 defaults 0 0
mkinitrd --fstab=/mnt/md2/etc/fstab -v -f /boot/initrd-`uname -r`.img `uname -r`
mkdir -p /mnt/md1
mount /dev/md1 /mnt/md1
cp -axu /boot/* /mnt/md1
sync
umount /mnt/md1
umount /mnt/md2/
root=/dev/sda3
root=/dev/md2
mount /dev/md1 /mnt/md1
vi /mnt/md1/grub/menu.lst
umount /mnt/md1
shutdown -r now
grub-install /dev/sdb
Installation finished. No error reported.
This is the contents of the device map /boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install'.
(hd0) /dev/sda
(hd1) /dev/sdb
grub-install /dev/sda
fdisk /dev/sda
Command (m for help): t
Partition number (1-4): 1
Hex code (type L to list codes): fd
Changed system type of partition 1 to fd (Linux raid autodetect)
Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): fd
Changed system type of partition 2 to fd (Linux raid autodetect)
Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): fd
Changed system type of partition 3 to fd (Linux raid autodetect)
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
mdadm /dev/md0 -a /dev/sda1
mdadm /dev/md1 -a /dev/sda2
mdadm /dev/md2 -a /dev/sda3
cat /proc/mdstat
Personalities : [raid1] [raid10] [raid0] [raid6] [raid5] [raid4]
md0 : active raid1 sda1[2] sdb1[1]
4200896 blocks [2/1] [_U]
[==========>..........] recovery = 52.7% (2215232/4200896) finish=0.5min speed=58454K/sec
md1 : active raid1 sda2[2] sdb2[1]
2104448 blocks [2/1] [_U]
resync=DELAYED
md2 : active raid1 sda3[2] sdb3[1]
286728000 blocks [2/1] [_U]
resync=DELAYED
unused devices:
General setup --->
[*] Kprobes
[*] Kernel->user space relay support (formerly relayfs)
Kernel hacking --->
[*] Debug Filesystem
[*] Kernel debugging
[*] Compile the kernel with debug info
Security Options --->
[*] Default Linux Capabilities
cat .config | egrep 'CONFIG_DEBUG_INFO|CONFIG_KPROBES|CONFIG_RELAY|CONFIG_DEBUG_FS|CONFIG_MODULES|CONFIG_MODULES_UNLOAD'
apt-get install -y systemtap
apt-get install -y serverstats
* * * * * php -f /var/www/serverstats/update.php
<Directory /var/www/domain/data/www/domain.ru>
Options +ExecCGI +Includes
AllowOverride All
</Directory>
sudo apt-get install php5-cli php5-dev make
sudo apt-get install libsqlite3-0 libsqlite3-dev
sudo apt-get install php5-sqlite3
sudo apt-get remove php5-sqlite3
cd ~
sudo wget http://pecl.php.net/get/sqlite3-0.6.tgz
sudo tar -zxf sqlite3-0.6.tgz
cd sqlite3-0.6/
sudo phpize
sudo ./configure
sudo make
sudo make install
sudo apache2ctl restart
extension=sqlite3.so
vi /etc/apt/sources.list
deb http://www.debian-multimedia.org lenny main
cd /usr/src
wget http://www.debian-multimedia.org/pool/main/d/debian-multimedia-keyring/debian-multimedia-keyring_2008.10.16_all.deb
dpkg -i debian-multimedia-keyring_2008.10.16_all.deb
apt-get update;
apt-get install -y mencoder;
# A basic anonymous configuration, no upload directories.
User ftp
Group nogroup
# We want clients to be able to login with "anonymous" as well as "ftp"
UserAlias anonymous ftp
# Cosmetic changes, all files belongs to ftp user
DirFakeUser on ftp
DirFakeGroup on ftp
RequireValidShell off
# Limit the maximum number of anonymous logins
MaxClients 10
# We want 'welcome.msg' displayed at login, and '.message' displayed
# in each newly chdired directory.
DisplayLogin welcome.msg
DisplayChdir .message
# Limit WRITE everywhere in the anonymous chroot
DenyAll
# Uncomment this if you're brave.
#
# Umask 022 is a good standard umask to prevent new files and dirs
# # (second parm) from being group and world writable.
# Umask 022 022
#
# DenyAll
#
#
# AllowAll
#
#
#
Перезапускаем:
/etc/init.d/proftpd restart
vi /etc/nginx/nginx.conf
client_max_body_size 50m;
/etc/init.d/nginx restart
Википедия входит в пятёрку самых посещаемых сайтов мира и имеет менее 30-ти штатных сотрудников.(с) http://wikimediafoundation.org/wiki/Staff
echo "UTF-8" | tee -a /usr/local/ispmgr/etc/filemgr.enc
killall -9 -r ispm
yum install links elinks -y
vi /etc/httpd/conf/httpd.conf
ExtendedStatus On
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from .example.com
</Location>
Allow from 127.0.0.1
/etc/init.d/httpd restart
/etc/init.d/httpd fullstatus
elinks -dump http://localhost:8080/server-status
cat /proc/sys/fs/file-max, обозначающий число одновременно открытых файлов
cat /proc/sys/fs/file-nrпо порядку он выдает три значения: число открытых в данный момент файлов; число открытых, но не используемых файлов; максимальное число открытых файлов
vi /etc/sysctl.conf
fs.file-max = 999999
/sbin/sysctl -p
sudo vi /etc/security/limits.conf
* - nofile 999999
su apache -s /bin/sh
ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 80064
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 999999
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 80064
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
http://dl8-cdn-02.sun.com/s/ESD6/JSCDL/jdk/6u17-b04/jre-6u17-linux-i586-rpm.bin?e=1258069887405&h=963e633f2f4bbd85d6a916a18493251f/&filename=jre-6u17-linux-i586-rpm.binи 64 битную
http://dl8-cdn-02.sun.com/s/ESD6/JSCDL/jdk/6u17-b04/jre-6u17-linux-x64-rpm.bin?e=1258069936979&h=3ea2a1a3bdb3029bc51ac06f4401b66d/&filename=jre-6u17-linux-x64-rpm.bin
64бита: http://dl8-cdn-02.sun.com/s/ESD6/JSCDL/jdk/6u17-b04/jre-6u17-linux-x64.bin?e=1258503089788&h=2ba56565ed3a9b57d85315224427bba2/&filename=jre-6u17-linux-x64.bin
32бита: http://dl8-cdn-02.sun.com/s/ESD6/JSCDL/jdk/6u17-b04/jre-6u17-linux-i586.bin?e=1258503158489&h=60bef9027b2c8d2764753a306a3b20e2/&filename=jre-6u17-linux-i586.bin
yum remove -y java-1.4.2-gcj-compat
cd /usr/src
wget 'http://dl8-cdn-02.sun.com/s/ESD6/JSCDL/jdk/6u17-b04/jre-6u17-linux-i586-rpm.bin?e=1258069887405&h=963e633f2f4bbd85d6a916a18493251f/&filename=jre-6u17-linux-i586-rpm.bin' -Ofilename=jre-6u17-linux-i586-rpm.bin
sh jre-6u* # можно сразу написать 'yes'
java -version
java version "1.6.0_17"
Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
Java HotSpot(TM) Server VM (build 14.3-b01, mixed mode)
Ну, и напоследок, я решил свести в таблицу варианты событий в том случае, если бы контекстные анализаторы работали в паре с DNSBL-листами. Как и ожидалось, я получил 100% эффективность фильтрации спама даже при использовании зарубежного продукта Apache SpamAssassin.
yum install yum-utils -y
package-cleanup --leaves
yum install curl-devel git -y
easy_install-2.6 pycurl==7.15.5.1 simplejson
git clone git://github.com/facebook/tornado.git
cd tornado/
python2.6 setup.py build
python2.6 setup.py install
import tornado.httpserver
import tornado.ioloop
import tornado.web
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, world")
application = tornado.web.Application([
(r"/", MainHandler),
])
if __name__ == "__main__":
http_server = tornado.httpserver.HTTPServer(application)
http_server.listen(8888)
tornado.ioloop.IOLoop.instance().start()
python2.6 test.py
wget http://python.org/ftp/python/2.6.4/Python-2.6.4.tar.bz2
tar -xjf Python-2.6.4.tar.bz2
cd Python-2.6.4
yum install -y gcc make zlib-devel bzip2-devel openssl-devel readline-devel sqlite-devel gdbm-devel ncurses-devel
./configure --prefix=/opt/python26 --with-zlib=/usr/include
make
make install
ln -s /opt/python26/bin/python2.6 /usr/bin/python2.6
python2.6 -V
wget http://pypi.python.org/packages/2.6/s/setuptools/setuptools-0.6c11-py2.6.egg#md5=bfa92100bd772d5a213eedd356d64086
sh setuptools-0.6c11-py2.6.egg
ln -s /opt/python26/bin/easy_install-2.6 /usr/bin/easy_install-2.6
easy_install-2.6 --help
yum install -y git
git clone git://github.com/facebook/tornado.git
skip-bdb
skip-innodb
cat /proc/filesystems
ext2
ext3
nodev proc
nodev sysfs
nodev tmpfs
nodev devpts
nodev binfmt_misc
nodev fusectl
nodev fuse
vzctl set 100 --devices c:10:229:rw --save
vzctl restart 100
mknod /dev/fuse c 10 229
modprobe fuse