RTFM.WIKI

Ordnung muß sein. Ordnung über alles (18+)

Инструменты пользователя

Инструменты сайта


linux:centos:centos_tnt

Содержание

CentOS советы

HowTo - Как сделать xyz?

CentOS 8 > Stream

Ошибка

Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
Exited with code exit status 1 

Решение

sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-Linux-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.epel.cloud|g' /etc/yum.repos.d/CentOS-Linux-*

Говорят лучше использовать vault.epel.cloud вместо vault.centos.org

Очистить файлы btmp и wtmp

Сломалась ротация логов, что привело к переполнению диска из-за файла /var/log/btmp

Быстро очистить файл можно командой

# cat /dev/null > /var/log/btmp

killall: command not found

man killall

# yum install psmisc

Как надежно удалить файл

Через утилиту shred. Она уже есть в пакете coreutils.

Обновление до 6.x_latest версии с CentOS 6.4/6.3/6.2/6.1/6.0

Посмотреть версию ОС

# cat /etc/redhat-release
CentOS release 6.5 (Final)

Обновить

# yum clean all
# yum update glibc* yum* rpm* python*
# yum update
</code

==== Где взять свежую версю Git для CentOS? ====

Собрать из Git! Ха-ха-ха!

Действительно, в CentOS 6 доступна довольно старая версия:

<code>
[dx@dx ~]# git --version
git version 1.7.12.4

Свежую версию Git можно установить из репозитория Ghettoforge

CentOS 5

rpm -Uvh http://mirror.symnds.com/distributions/gf/el/5/gf/x86_64/gf-release-5-8.gf.el5.noarch.rpm

CentOS 6

rpm -Uvh http://mirror.symnds.com/distributions/gf/el/6/gf/x86_64/gf-release-6-8.gf.el6.noarch.rpm

CentOS 7

http://mirror.symnds.com/distributions/gf/el/7/gf/x86_64/gf-release-7-8.gf.el7.noarch.rpm
[dx@dx ~]## yum provides git

git-1.7.1-3.el6_4.1.i686 : Fast Version Control System
Repo        : base
Matched from:

git-2.6.0-1.gf.el6.i686 : Fast Version Control System
Repo        : installed
Matched from:
Other       : Provides-match: git

P.S. WTF, зачем мне может понадобиться новая версия git?! Всё что надо есть в EPEL! Оказывается может. В CentOS, как и в Debian древний софт, как бивни мамонта, зато stable блин. Когда делал простой скрипт обновления phpmyadmin git ругался. fix https://davejamesmiller.com/blog/automatic-upgrades-for-phpmyadmin

Как распаковать содержимое rpm-пакета?

via http://michael-xiii.blogspot.ru/2011/11/rpm.html

Обычный rpm-пакет - это архив формата cpio вместе с некоторым набором метаданных.

Распаковать его можно

# rpm2cpio package.rpm | cpio -dimv

Параметры и флаги:

  • имя rpm-файла, который необходимо распаковать и перенаправить вывод на архиватор cpio.
  • -i - распаковать архив,
  • -d - сохранить структуру директорий.
  • -v - вывести список распакованных файлов,
  • -m - наследовать даты модификаций извлекаемых файлов.

Как рестартнуть все сервисы без перезагрузки OS

via http://www.vds54.ru/help/kak-restartnut-vse-servisy-without-reboot

Если требуется перезагрузить все сервисы на CentOS без ребута самого сервера, то для простоты можно воспользоваться следующей командой:

LANG=C chkconfig --list | grep 3:on | awk '{system("/etc/init.d/"$1 " restart")}'

Посмотреть список сервисов, которые будут перезапущены таким образом можно следующим образом:

LANG=C chkconfig --list | grep 3:on

P.S. будьте осторожны, так как /etc/init.d/networking и sshd будут так же перезапущены.

Запустить скрипт через каждые 30 минут

Каждые 30 минут

*/30 * * * * /path/script.sh

Запускать в XX:00 и XX:30

00,30 * * * * /path/script.sh

Открываем crontab в nano

EDITOR=nano crontab -e

Делаем nano редактором по-умолчанию (добавляем в .bash_profile).

# export EDITOR=/usr/bin/nano

Red Hat Enterprise Linux Release Dates

Проверить скорость диска

Проверить скорость записи диска. Данная команда пишет 512 МБ на диск и потом показывает скорость. Важным ключом является conv=fdatasync. Она заставляет dd сделать sync и убедится что все данные действительно записаны на диск. Если не использовать этот ключ, то dd будет писать в память и бенчмарк получится неверный

# dd if=/dev/zero of=/tmp/speedtest bs=1M count=512 conv=fdatasync; rm -f /tmp/speedtest

via

Как создать swap файл?

Создаём swap-файл размером 256MB

# отключаем swap
swapoff -a
# создаём swap-файл размером 256 МБ
dd if=/dev/zero of=/swap bs=1M count=256
# инициализируем созданный swap-файл
mkswap /swap
# включаем swap
swapon -a

Не забываем про chmod иначе будет insecure permissions 0644, 0600 suggested.

# chmod 600 /swap

Добавляем информацию о swap в файл /etc/fstab

/swapfile	swap	swap	defaults	0 0

Вариант для ленивых - https://github.com/Cretezy/Swap

# wget https://raw.githubusercontent.com/Cretezy/Swap/master/swap.sh -O swap
# sh swap 1G

Если возникла ошибка msgid "memory exhausted by input buffer of size %zu bytes (%s)"

Неправильно

dd if=/dev/zero of=/swapfile bs=1G count=4
dd: memory exhausted by input buffer of size 1073741824 bytes (1.0 GiB)

Правильно

dd if=/dev/zero of=/swap bs=1M count=4000

fallocate НЕ НАДО использовать для создания swap

mkswap manpage

Note that a swap file must not contain any holes. Using cp(1) to create the file is not acceptable. Neither is use of fallocate(1) on file systems that support preallocated files, such as XFS or ext4, or on copy-on-write filesystems like btrfs. It is recommended to use dd(1) and /dev/zero in these cases. Please read notes from swapon(8) before adding a swap file to copy-on-write filesystems.

swapon manpage

You should not use swapon on a file with holes. This can be seen in the system log as

    swapon: swapfile has holes.

The swap file implementation in the kernel expects to be able to write to the file directly, without the assistance of the filesystem. This is a problem on preallocated files (e.g. fallocate(1)) on filesystems like XFS or ext4, and on copy-on-write filesystems like btrfs.

Как очистить swap и кэш памяти (cached memory)

Очистить swap

swapoff -a && swapon -a

Куда исчезают при этом данные? :)

Очистить кэш памяти

Начиная с Linux ядра 2.6.16 у администраторов системы появилась возможность принудительной очистки системных кэшей (https://linux-mm.org/Drop_Caches)

Очистить pagecache

echo 1 > /proc/sys/vm/drop_caches

Очистить dentrie и inode кэши

echo 2 > /proc/sys/vm/drop_caches

Очистить pagecache, dentrie и inode кэши

echo 3 > /proc/sys/vm/drop_caches

Бытует мнение, что перед выполнением необходимо запустить команду sync. Проверить FIXME

Вывести список установленных rpm из определенного репозитория

Изменить hostname в CentOS

В файл /etc/sysconfig/network добавить

HOSTNAME="foobar.domain.com"

Выполнить команду

# hostname foobar.domain.com

В файл /etc/hosts добавить

127.0.0.1       localhost localhost.localdomain
192.168.13.77   foobar.domain.com
# /etc/init.d/network restart

Количество соединений с одного IP

Количество соединений с одного IP

netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1
netstat -an | grep 80 | wc -l

Есть ли аналог --no-install-recommends в CentOS?

В CentOS старый PHP и он не обновляется

Joomla требует минимум 5.3.10

# View the Changelog

# Because CentOS and the upstream vendor have backported security patches, the version numbers can often be misleading when you look for CVE fixes. Checking the changelog of a package is a good way to see if the fix has been implemented. Once again, rpm comes to the rescue.

rpm -q --changelog <packagename> | less

# Using less isn't necessary, but for some packages like the kernel, the changelog can be quite long. Using less helps to make things more readable. 

Ошибки

/usr/sbin/logtail: No such file or directory

yum install logcheck

/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

Узнать где доступна либа

# yum provides ld-linux.so.2
glibc-2.17-260.el7.i686 : The GNU libc libraries
Repo        : base
Matched from:
Provides    : ld-linux.so.2

Установка пакета

# yum install glibc.i686

Для старых систем

# yum install glibc.i386

Для Debian

# apt-get install ia32-libs

Another app is currently holding the yum lock

Ошибка Another app is currently holding the yum lock; waiting for it to exit…

# ps aux | grep yum
# kill yum-PID

Если не помогло

# rm /var/run/yum.pid
# yum update

iptables: line 268: restorecon: command not found

Ошибка

iptables: Saving firewall rules to /etc/sysconfig/iptables: /etc/init.d/iptables: line 268: restorecon: command not found 

Решение

# yum install policycoreutils

error: cannot open Packages database in /var/lib/rpm

Ошибка

rpmdb: Thread/process 23378/140496680339200 failed: Thread died in Berkeley DB library
error: db3 error(-30974) from dbenv->failchk: DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db3 -  (-30974)
error: cannot open Packages database in /var/lib/rpm
CRITICAL:yum.main:

Error: rpmdb open failed

Как починить

# db_recover -h /var/lib/rpm
# yum clean all

Или так

# mv /var/lib/rpm/__db* /tmp/
# rpm --rebuilddb
# yum clean all

Из Mac OS (Linux?) нет доступа к Samba (CentOS 7)

Ошибка

Как исправить

Установить предыдущую версию Samba через yum downgrade

Либо берем RPMы здесь ftp://mirror.switch.ch/pool/4/mirror/centos/7.2.1511/updates/x86_64/Packages/ и делаем rpm -i pkg.rpm

Список необходимых пакетов

libsmbclient-4.2.3-12.el7_2.x86_64.rpm
libwbclient-4.2.3-12.el7_2.x86_64.rpm
samba-4.2.3-12.el7_2.x86_64.rpm
samba-client-libs-4.2.3-12.el7_2.x86_64.rpm
samba-common-4.2.3-12.el7_2.noarch.rpm
samba-common-libs-4.2.3-12.el7_2.x86_64.rpm
samba-common-tools-4.2.3-12.el7_2.x86_64.rpm
samba-libs-4.2.3-12.el7_2.x86_64.rpm

yum, curl, php, java, etc не работают, illegal instruction

Ошибка возникает если

  • Установлен RHEL/CentOS 6.8
  • Виртуальная машина Xen
  • Установлен флаг AES

К примеру Wordpress при этом в режиме nginx+php-fpm падает с ошибкой 502 Bad Gateway.

Как исправить работу Wordpress (nginx+fpm)

Добавить строку

putenv("NSS_DISABLE_HW_AES=1");

в файлы

index.php
wp-cron.php
wp-load.php
/wp-admin/admin.php

Либо добавляем в конфиг fpm пуля переменную

env[NSS_DISABLE_HW_AES] = 1 в файл /etc/php-fpm.d/admin.conf

http://www.sctechgroup.com/2016/06/07/segfaults-libfreeblpriv3-upgrading-rhel-6-8-illegal-instruction/

3.10.0-327.el7 crashes on every boot

initcall_blacklist=clocksource_done_booting

Передать ядру при загрузке параметр initcall_blacklist=clocksource_done_booting kernel

Добавить в файл /etc/default/grub такой же параметр

...
GRUB_CMDLINE_LINUX="rhgb quiet initcall_blacklist=clocksource_done_booting"  
...

Выполнить

# grub2-mkconfig -o /etc/grub2.conf

-bash: netstat: command not found

Опа, netstat выпилили из дефолта

# yum whatprovides netstat
 
net-tools-2.0-0.17.20131004git.el7.x86_64 : Basic networking tools
Repo        : @base
Matched from:
Filename    : /usr/bin/netstat

Окэй Google yum

# yum install net-tools

Ошибка Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again

Решение

# yum --disablerepo=epel -y update ca-certificates

Куда пропало место на диске?

atomic-release, The GPG keys listed for

warning: rpmts_HdrFromFdno: Header V3 RSA/SHA1 Signature, key ID 4520afa9: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY.art.txt

The GPG keys listed for the "CentOS / Red Hat Enterprise Linux 6 - atomicrocketturtle.com" repository are already installed but they are not correct for this package.
Check that the correct key URLs are configured for this repository.

Скачиваем новый GPG ключ

# wget https://www.atomicorp.com/RPM-GPG-KEY.atomicorp.txt
# mv RPM-GPG-KEY.atomicorp.txt /etc/pki/rpm-gpg/RPM-GPG-KEY.atomicorp.txt
# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY.atomicorp.txt

либо так

# rpm --import https://www.atomicorp.com/RPM-GPG-KEY.atomicorp.txt

Редактируем файл /etc/yum.repos.d/atomic.repo

gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY.atomicorp.txt   
         file:///etc/pki/rpm-gpg/RPM-GPG-KEY.art.txt

Если не помогло, то отключаем проверку GPG

gpgcheck=0

либо доверяем настроить .repo скрипту Atomic

# wget -q -O - http://www.atomicorp.com/installers/atomic | sh

su mysql - account is currently not available

http://wiki.rfremix.ru/index.php/Запуск_команд_от_имени_системных_пользователей

Это происходит из-за того, что у этих пользователей в качестве шела указан /sbin/nologin. Можно воспользоваться параметром -s для указания другого шела:

su - nobody -s /bin/sh

/usr/bin/ld: cannot find -lz

Ошибка /usr/bin/ld: cannot find -lz

Решение

# yum install zlib-static

Ошибка /usr/bin/ld: cannot find -lpthread

Решение

yum install glibc-static

Ошибка /usr/bin/ld: cannot find -lstdc++

Решение

yum install libstdc++-static

Не запускается sshd: /var/empty/sshd must be owned by root

Ошибка

# service sshd start
/var/empty/sshd must be owned by root and not group or world-writable

Решение

# chown root:root /var/empty/sshd
# chmod 711 /var/empty/sshd
# /etc/init.d/sshd start

Another MySQL daemon already running with the same unix socket

# service mysqld stop
# rm -rf /var/lib/mysql/mysql.sock
# service mysqld start

В итоге, недавно в багтреке mysql я нашел ту же проблему. Во всем виновато обновление centos. После обновления папка /tmp имеет неверные права, из-за чего не удаляется корректно сокет, а также не создается. Решение такое: 1) Удаляем сокет (решение выше по ссылке) 2) Меняем chmod 777 -R /tmp 3) Перезагружаем сервер. Если после этого сервер баз данных поднялся сразу, значит проблема решена

Warning: SuexecUserGroup directive requires SUEXEC wrapper

Появилось после установки prefork вместо itk

# chown root:root  /usr/sbin/suexec
# chmod 4755 /usr/sbin/suexec 

Ссылки

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
 
linux/centos/centos_tnt.txt · Последнее изменение: 2022/08/04 02:29 — dx