swith betwen kde/gnome in Centos/RHEL/Fedora
Запись создана 1 апреля, 2009
Если нужно поменять Gnome на KDE глобально для всей машины, то:
[cc lang=»bash»]
echo «DESKTOP=KDE» > /etc/sysconfig/desktop
echo «DISPLAYMANAGER=KDE» >> /etc/sysconfig/desktop
[/cc]
если для какого то пользователя отдельно:
[cc lang=»bash»]
[root@support ~]# su username
[username@support root]$ switchdesk kde
Red Hat Linux switchdesk 4.0
Copyright (C) 1999-2004 Red Hat, Inc
Redistributable under the terms of the GNU General Public License
Desktop now set up to run KDE.
[/cc]
» Запись из раздела CentOS Linux, Linux desktop | Комментировать
Centos запуск KDE при старте системы
Запись создана 26 марта, 2009
Предположим, установили вы CentOS на свой десктоп, при старте системы вы получаете голую консоль, а хотелось бы увидеть KDE.
Открывем /etc/inittab ищем строчку id:3:initdefault: в ней меняем 3 на 5.
В случае если стартует KDE/Gnome а нужна голая консоль, действие обратное.
» Запись из раздела CentOS Linux, Linux desktop | Комментировать
Table is marked as crashed and should be repaired
Запись создана 16 марта, 2009
Просматривая /var/log/mysql/error.log обнаруживаем ошибки вида:
090316 20:55:03 [ERROR] /usr/sbin/mysqld: Table ‘./user_base/table’ is marked as crashed and should be repaired
если crashed всего несколько таблиц, то можно выполнить repair table из консольного mysql клиента или phpmyadmin при помощи sql запроса:
[cc lang=»sql»]
> USE user_base
> REPAIR TABLE table;
[/cc]
Если в базе crashed много таблиц, то будет проще выполнить команду:
[cc lang=»bash»]mysqlcheck -uUSER -pPASSWORD —repair —extended user_base[/cc]
ну а если много побитых таблиц, да еще и в большом количестве баз, то репайр лучше запустить на все базы, командой:
[cc lang=»bash»]mysqlcheck -uUSER -pPASSWORD —repair —extended -A[/cc]
» Запись из раздела MySQL | 5 комментариев
простановка прав на папки и файлы сайта
Запись создана 13 марта, 2009
Пришла заявка от клиента, человек по незнанию поставил рекурсивно на все файлы и папки своих сайтов права доступа 777. Захотелось человеку выставить 755 на папки и 644 на файлы, делать вручную это при паре десятков доменов и паре тысяч файлов упрятанных в запутанной структуре папок ну просто нереально. Тут ему пришел на помощь простой скрипт запускаемый по ssh который просто ищет все папки в текущей директории и ставит им chmod 755 ну и файлы аналогично, только chmod 644.
Ну и собственно сам «скрипт»:
[cc lang=»bash»]
find -type d -exec chmod 755 {} \;
find -type f -exec chmod 644 {} \;
[/cc]
» Запись из раздела CentOS Linux, FreeBSD, Unix | 2 комментария
possible SYN flooding on port 80. Sending cookies.
Запись создана 12 февраля, 2009
Начал падать апач, при ближайшем рассмотрении dmesg выдал:
possible SYN flooding on port 80. Sending cookies.
посмотрим кто же у нас лидер по SYN запросам:
[cc lang=»bash»]netstat -n -p | grep SYN_REC| awk ‘{print $5}’|awk -F: ‘{print $1}’ | sort -n | uniq -c | sort -nr | head -n10[/cc]
на первом месте 88.147.212.229 с числом 1030, это один из наших победителей. банним ублюдка:
[cc lang=»bash»]iptables -I INPUT -p tcp -s 88.147.212.229 -j REJECT —reject-with tcp-reset[/cc]
если таких явных лидеров нет (и ничего не валится, кроме сообщений в /var/log/messages), то возможно ложное срабатывание. Лечим так:
[cc lang=»bash»]
sysctl -w net.ipv4.tcp_syncookies=0
затем в конфиг /etc/sysctl.conf добавляем строчку:
net.ipv4.tcp_syncookies=0
проверяем:
cat /proc/sys/net/ipv4/tcp_syncookies
[/cc]
» Запись из раздела CentOS Linux, networking | 3 комментария
резервное копирование (backup) всех баз mysql
Запись создана 11 февраля, 2009
Прошелся по нескольким блогам. почитал и удивился тому что для того чтобы сделать дампы всех баз mysql люди используют mysqldump —all-databases. На мой взгляд вариант более чем неудобный.
Предложу более правильный вариант, снимаются дампы со всех баз данных каждая база в отдельный файл. Для пояснения:
/backup/mysql/ — папка куда будем складывать дампы.
megapass — пароль root к mysql
итак собственно сам скрипт:
[cc lang=»bash»]
for i in `mysql -pmegapass -e’show databases;’ | grep -v information_schema | grep -v Database`; do mysqldump -pmegapass $i > `date +%Y-%m-%d`-$i; gzip `date +%Y-%m-%d`-$i;done
[/cc]
теперь поясню что делается, в цикле вывода имен всех баз данных кроме information_schema и Database выполняется mysqldump в файл дата-имя_базы, затем дамп жмется gzip-ом.
На выходе получаем пачку файлов на подобии:
2009-02-11-shakirov_kayako.gz
2009-02-11-shakirov_mantis.gz
2009-02-11-shakirov_openfire.gz
Например если в системе несколько пользователей и базы данных у них сделаны правильно (имя базы с префиксом имени пользователя, например shakirov_base), то можно делать бакапы баз разных пользователей в разные папки. С полученными бакапами можно поступать как удобно, хранить на отдельном диске, разделе. внешнем ftp сервере или заливать куда-то по scp.
» Запись из раздела CentOS Linux, MySQL, Unix | 6 комментариев
FreeBSD free memory stats
Запись создана 9 января, 2009
В linux-ах есть полезная тулза free, вывод её привожу ниже:
[cc lang=»bash»]
[root@iit ~]# free
total used free shared buffers cached
Mem: 4148892 1736588 2412304 0 207108 859128
-/+ buffers/cache: 670352 3478540
Swap: 2048276 32812 2015464
[/cc]
В FreeBSD такой утилиты увы нет, почти нет. Замены есть две, perl скрипт (freebsd-memory — List Total System Memory Usage) и freecolor. Листинг установке того и другого ниже:
[cc lang=»bash»]
fetch -o /usr/local/bin/free https://itblog.su/wp-content/uploads/2009/01/freebsd-memorypl.txt
chmod +x /usr/local/bin/free
-bash-2.05b# free
SYSTEM MEMORY INFORMATION:
mem_wire: 257478656 ( 245MB) [ 12%] Wired: disabled for paging out
mem_active: + 564359168 ( 538MB) [ 26%] Active: recently referenced
mem_inactive:+ 1172426752 ( 1118MB) [ 55%] Inactive: recently not referenced
mem_cache: + 64004096 ( 61MB) [ 3%] Cached: almost avail. for allocation
mem_free: + 44834816 ( 42MB) [ 2%] Free: fully available for allocation
mem_gap_vm: + 458752 ( 0MB) [ 0%] Memory gap: UNKNOWN
————— ———— ———— ——
mem_all: = 2103562240 ( 2006MB) [100%] Total real memory managed
mem_gap_sys: + 37957632 ( 36MB) Memory gap: Kernel?!
————— ———— ————
mem_phys: = 2141519872 ( 2042MB) Total real memory available
mem_gap_hw: + 5963776 ( 5MB) Memory gap: Segment Mappings?!
————— ———— ————
mem_hw: = 2147483648 ( 2048MB) Total real memory installed
SYSTEM MEMORY SUMMARY:
mem_used: 866217984 ( 826MB) [ 40%] Logically used memory
mem_avail: + 1281265664 ( 1221MB) [ 59%] Logically available memory
————— ———— ———— ——
mem_total: = 2147483648 ( 2048MB) [100%] Logically total memory
[/cc]
[cc lang=»bash»]cd /usr/ports/sysutils/freecolor
make install clean
-bash-2.05b# freecolor -t -m -o
total used free shared buffers cached
Mem: 2042 834 1207 0 0 61
Swap: 2048 2 2045
Total: 4294965248 = ( 2890 (used) + 3314 (free))
[/cc]
» Запись из раздела FreeBSD | 6 комментариев
How to kill TCP connection in CentOS
Запись создана 10 декабря, 2008
Убить tcp соединения в Centos (да и не только) можно утилитой tcpkill. Утилита входит в пакет dsniff, ставим из репозитория epel (на данный момент в этом репозитарии dsniff новее) или rpmforge под CentOS 5.2
[cc lang=»bash»]
[root@srv001 ~]# rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
[root@srv001 ~]# yum install dsniff
[/cc]
Ну, и несколько примеров использования:
1. убить все исходящие соединения с интерфейса eth0 на порт 21
[cc lang=»bash»]tcpkill -i eth0 port 21[/cc]
2. убить все соединения исходящие/входящие с хоста
[cc lang=»bash»]tcpkill host 192.168.0.1
tcpkill host hostname.ru[/cc]
3. убить все ip пакеты между хостом 192.168.0.1 и любым другим, кроме 192.168.0.10
[cc lang=»bash»]tcpkill ip host 192.168.0.1 and not 192.168.0.10[/cc]
Ну и различные от этого вариации. Прошу учесть тот факт что если пакеты убивать нужно идущие на/с ip «зацепленного» на логический интерфейс (например eth0:1), то нужно явно это указать, как-то так:
[cc lang=»bash»]tcpkill -i eth0:1 host 123.123.123.1[/cc]
» Запись из раздела CentOS Linux, networking, Unix | 4 комментария
соответствие чипов памяти и названия модуля
Запись создана 21 ноября, 2008
Делаю запись для себя, чтобы не забыть :)
» Запись из раздела Несортированное | 2 комментария
How to repair a corrupt Firebird database?
Запись создана 19 ноября, 2008
Частично повредилась база данных Firebird, ругается и не дает делать бакапы. К счастью в серверной установке Firebird есть утилиты для восстановления БД (если повреждения не серьезные). Ниже листинг батника.
[cc lang=»dos»]
echo подготавливаем базу к дампу
gfix.exe -mend -user SYSDBA -pas masterkey server:c:\databases\base.gdb
echo делаем дамп
gbak.exe -b -g -user SYSDBA -pas masterkey server:c:\databases\base.gdb c:\databases\backup\base.bak
echo переименовываем файл базы
rename c:\databases\base.gdb c:\databases\base.orig
echo восстанавливаем базу из дампа.
gbak.exe -user SYSDBA -pas masterkey C:\databases\backup\base.bak server:c:\databases\base.gdb
[/cc]
Принятые умолчания и пояснения:
c:\databases\base.gdb — путь к файлу бд
server:c:\databases\base.gdb — сетевой путь к файлу бд (server менять на имя машины и БД)
у GFIX есть еще пара ключей. -v проверка БД, и -v -f полная проверка БД Firebird
» Запись из раздела Базы данных | 8 комментариев