CentOS — дистрибьютив Linux, совместимый с RedHat Linux. По сути CentOS Linux это RedHat Enterprise Linux, из которого удалены только коммерческие закрытые программы. Мы постарались протестировать все приводимые примеры и собрать документацию, необходимую для практического применения системными администраторами. Все сказанное в этом разделе относится к CentOS Linux 4.4 и выше, так же с лёгкостью может быть отнесено к RedHat Linux, и возможно будет актуально для других основанных на RedHat или совместимых с ним дистрибьютивов.
Оффициальная документация по Centos
Установка и настройка
Управление пакетами
Система сервисов
Дисковая подсистема
CentOS Hardware RAID — работа с аппаратным RAID
CentOS Software RAID — работа с программным RAID
перенос CentOS — перенос системы на другой компьютер
LVM — работа с LVM
Сетевая подсистема
iptables — встроенный Брандмауэр
centos-netdriver — установка драйверов сетевой платы
Диагностика проблем
программы для диагностики CentOS
tcpdump — перехват сетевого трафика
tail — просмотр логов в реальном времени
Если CentOS не грузится
Grub механизм работы загрузчика
Обновления системы
зарегистрироваться для доступа к обновлениям
up2date --register
обновление ПО
su -c 'yum update' (all)
автоматическое обновление ПО
su -c '/sbin/chkconfig --level 345 yum on; /sbin/service yum start'
уровни запуска CentOS
CentOS runlevels:
0 - halt 1 - single user 2 - not used 3 - full multi user 4 - not used 5 - full multi user (with X-login) 6 - reboot
Сервисы
[stop start restart]
service httpd restart
добавление сервиса iptables в автозапуск
/sbin/service iptables restart /sbin/chkconfig --level 345 iptables on
services
ntsysv chkconfig --list /sbin/service crond status /sbin/service iptables restart /sbin/chkconfig --level 345 iptables on
управление разделами диска
fdisk -l parted parted print parted cp /dev/hda1 to /dev/hdb1 lvdisplay vgdisplay pvdisplay mkfs e2label tune2fs e2fsck -y cat /proc/swaps swapoff -v /dev/VolGroup00/LogVol01 lvm lvresize /dev/VolGroup00/LogVol01 -L +256M lvm lvreduce /dev/VolGroup00/LogVol01 -L -256M lvm lvremove /dev/VolGroup00/LogVol01 mkswap /dev/VolGroup00/LogVol01 swapon -va dd if=/dev/zero of=/swapfile bs=1024 count=65536 mkswap /swapfile swapon /swapfile
дисковые квоты
repquota -a mount -t ext3 -o acl <device> <partition> setfacl -m <rules> <files> setfacl -m u:andrius:rw /project/file setfacl -x u:500 /project/file getfacl /project/file
информация о происходящем в системе
free ps aux | less ps ax top df du -sh lsof lspci lsusb netstat tcpdump
инсталляция ПО, управление пакетами
(as root) yum install mc su -c 'yum install tsclient' su -c 'yum groupinstall "MySQL Database"' su -c 'yum update tsclient' su -c 'yum groupupdate "MySQL Database"' su -c 'yum remove tsclient' su -c 'yum groupremove "MySQL Database"'
поиск ПО
su -c 'yum list tsclient' (поиск по имени пакета) su -c 'yum search PalmPilot' (поиск по описанию пакета) su -c 'yum provides libneon' (поиск по файлу, содержащемуся в пакете) su -c 'yum list tsc\*' (regexp)
rpm -q -f /usr/bin/telnet #какому пакету принадлежит файл /usr/bin/telnet yum list 'perl*' #посмотреть полный список пакетов в репозиториях со словом Perl
ручная установка пакетов из RPM
rpm -qd lvm # describe lvm rpm -Uvh foo-1.0-1.i386.rpm rpm -ivh kernel-some.rpm rpm -ivh --replacepkgs foo-1.0-1.i386.rpm rpm -ivh --replacefiles foo-1.0-1.i386.rpm (опасная установка без зависимостей) --nodeps
деинсталляция
rpm -e foo.rpm
обновление
rpm -Uvh foo-2.rpm (force) rpm -Uvh --oldpackage foo.rpm
fresh
rpm -Fvh foo.rpm rpm -Fvh *.rpm
поиск
rpm -q foo rpm -q --redhatprovides bar.so.2 rpm -q -a (все) rpm -q -f file (пакет, содержащий файл) rpm -q -l (список файлов в пакете)
verify
rpm -Vf /usr/bin/vim rpm -Va rpm -Vp foo-1.0-i386.rpm rpm -K nosignature <rpmfile> (check md5)
keys
rpm --import /usr/share/rhn/RPM-GPG-KEY rpm -qa gpg-pubkey* rpm -R file.rpm (check sign)
конфигурации Centos
network
netconfig system-config-network-cmd -e > /tmp/network-config system-config-network-cmd -i -c -f /tmp/network-config
network profile
system-config-network-cmd --profile <name> --activate
/etc/sysconfig/
# net.ipv4.ip_forward 1 /sbin/sysctl -p /etc/sysctl.conf
system-config
system-config-authentication system-config-network-druid system-config-samba system-config-date system-config-network-gui system-config-securitylevel system-config-httpd system-config-network-tui system-config-securitylevel-tui system-config-keyboard system-config-nfs system-config-services system-config-language system-config-packages system-config-soundcard system-config-lvm system-config-printer system-config-time system-config-mouse system-config-printer-gui system-config-users system-config-network system-config-printer-tui system-control-network system-config-network-cmd system-config-rootpassword
Управление пользователями
useradd <name> -d /home/user -g users -m passwd <user> groupadd -g <gid> groupadd -r (gid less 499) chage -d 0 user (expire now) usermod -L user (lock)
Установка нового ядра
/sbin/mkbootdisk `uname -r` rpm -qa | grep kernel rpm -ivh newkernel-i686.rpm ls -l /boot (sure initrd-newkernel.img exist) /boot/grub/grub.conf (exist title section for new)
конфигурация модулей ядра
/etc/rc.modules (force boottime load) /etc/modprobe.conf (all available) /sbin/lsmod /sbin/modprobe e100 /sbin/modprobe -v e100 /sbin/modinfo (warning, force) insmod, rmmod
названия жёстких дисков и логических устройств
/dev/mapper/VolGroup00-LogVol02 /dev/sda /dev/sdb /dev/hda /dev/hdb
альтернативные версии программ
(в одну строчку) /usr/sbin/alternatives --install /usr/bin/java java /usr/lib/jvm/jre-1.4.2-gcj/bin/java 1
(в одну строчку) /usr/sbin/alternatives --install /usr/bin/java java /usr/java/j2re1.5.0_06/bin/java 2
/usr/sbin/alternatives --config java /usr/sbin/alternatives --display java
SELinux
/var/log/audit/audit.log /usr/bin/id - показывает Context setsebool -P httpd_enable_cgi 1 man httpd_selinux man chcon
не забыть дополнить про
parted & lvm options quotas at cron