ssh на каждый день

Права на файлы и папки

Удобно использовать рекурсивное применение.

chown -R bitrix:bitrix .		# смена владельца:группы
find ./ -type d -exec chmod 755 {} \;	# 755 для директорий
find ./ -type f -exec chmod 644 {} \;	# 644 для файлов

Перекодировать все файлы сайта в UTF-8
find ./ -type f -name '*.php' -exec iconv -fcp1251 -tutf8 -o /tmp/tmp_file {} \; -exec mv /tmp/tmp_file {} \;

Поиск файла по дате изменения

find /home/bitrix/www/bitrix/modules -newermt '2013-06-20 10:35'

Количество файлов в директории

find . -type f | grep -c ''

Убить всё на 80м порту

fuser -k 80/tcp 

Место на диске.

df -h    # на всём диске
du -sh   # в текущей папке

Архивация ядра 1С-Битрикс

Код для архивирования ядра (components + modules).

tar -zcvf core.tgz ./bitrix/modules/ ./bitrix/components/ --exclude="*.tar" --exclude="*.gz" --exclude="*.tgz" --exclude="*.gz.[0-9]" --exclude="*.sql" --exclude="*.xml" --exclude="*.zip" --exclude="*.rar" --exclude="*.exe" --exclude="*.csv" --exclude="*.mp3" --exclude="*.db" --exclude="./bitrix/cache/*" --exclude="./bitrix/managed_cache/*" --exclude="./bitrix/stack_cache/*" --exclude="./bitrix/html_pages/*" --exclude="./bitrix/backup/*" --exclude="./upload/resize_cache/*" --exclude="./upload/iblock/*"

Копирование данных

С опцией -P для wget можно задавать куда копировать данные.

wget -P /home/bitrix/www/ http://example.com/dump.tgz

Защищенное копирование через ssh с удаленного комп. на текущий.
Пути можно поменять местами и копирование произойдёт с текущего компа на удаленный.

scp -r root@151.248.125.124:/home/bitrix/www/bitrix/backup/2013-06-19_12-38_full_d9753eb0.tar.gz /home/bitrix/www

Лучшая утилита копирования. Скопирует только отсутствующие на удалённом сервере файлы.

rsync -vrtplze ssh /home/bitrix/www/upload/iblock/* root@213.136.83.249:/home/bitrix/www/upload/iblock/*

Большие проекты могут иметь более ста или даже тысячи файлов битриксовской резервной копии, такой архив надёжнее скачать wget'ом и уже потом установить с restore.php, но копировать такое число файлов запаришься. php-скрипт ниже сгенерирует bash-скрипт для копирования больших архивов.

echo "#!/bin/bash\n";
echo 'wget -P /home/bitrix/www/ http://site.ru/bitrix/backup/20161025.enc.gz; ';

for ($i=1;$i<678;$i++) {
    echo 'wget -P /home/bitrix/www/ http://site.ru/bitrix/backup/20161025.enc.gz.'. $i .'; ';
}

/*
php wget_backup_generator.php > download.sh
chmod +x download.sh
*/

Работа с пользователем

Вся информация о пользователях и группах храниться в файлах /etc/passwd, /etc/shadow и /etc/group

Сменить пароль

passwd [username]

Добавить нового пользователя с автоматическим созданием папки

adduser [username]

Сменить пользователю группу

usermod -g [groupname] [username]

Добавить пользователю группу

usermod -a -G [groupname] [username]

Список групп пользователя

groups [username]

:/sbin/nologin для ftp-пользователей
Подробный мануал: http://help.ubuntu.ru/wiki/пользователи_и_группы

Процессы

Просмотр, удаление процессов. Результаты можно grep'ить.

ps ax		# Просмотр текущик процессов
ps axf		# Просмотр текущик процессов с родителями
ps axfu		# Просмотр текущик процессов с родителями расширенно
 
kill PID        # Мягко убиваем
kill -9 PID	# Жесткое убивание

# Сколько потребляем памяти один httpd процесс
ps -ylC httpd | awk '{x += $8;y += 1} END {print "Average Proccess Size (MB): "x/((y-1)*1024)}'

MySQL

Дамп MySQL.

mysqldump -Q -c -e -u root -p DBNAME > ./dump.sql
mysql -u root -p DBNAME < ./dump.sql

Бекап базы на крон без блокировки таблиц.

mysqldump --single-transaction sitemanager0 > /backup/db_sql/site_ru_mysql_`date +%Y.%m.%d_%H_%M`.sql

Показать все базы данных.

show databases;

Удалить базу данных.

drop database DBNAME;

Создать базу данных.

CREATE DATABASE `DB_NAME` CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Создание пользователя базы данных.

CREATE USER 'USERNAME'@'localhost' IDENTIFIED BY 'password';

Смена кодировки базы данных.

alter database DB_NAME default character set utf8

Просмотр переменных.

SHOW VARIABLES;

Установка нового значения для переменной.

SET GLOBAL sort_buffer_size=1000000

Lock wait timeout exceeded


Настройка безпаролевого доступа

Данная настойка сделает возможным заходить или копировать данные без ввода пароля.
На сервере с которого собираемся подключаться к другому серверу сгенерировать ключи.

ssh-keygen -t dsa

Создастся два ключа.

~/.ssh/id_dsa
~/.ssh/id_dsa.bup

Передаем открытый ключ второму компьютеру, к которому собираемся соединяться.

ssh-copy-id -i ~/.ssh/id_dsa.pub name@192.168.0.2

И ещё пару статей на тему: https://habrahabr.ru/post/122445/, https://habrahabr.ru/post/39116/


Краткая выжимка статьи на хабре

https://habrahabr.ru/company/ruvds/blog/323330/
Каждая команда в этой и других статьях мной осмыслены и проверены, поэтому я делаю краткие выжимки без подробного описания, так как здесь всё является моей шпаргалкой.

# Вывод результатов работы команд в виде таблицы
mount | column -t
ls -l | column -t
cat /etc/passwd | column -t -s: # разделитель «:»

# вывести сведения об архитектуре
getconf LONG_BIT

# одновременный просмотр нескольких лог-файлов
multitail /var/log/httpd/access_log /var/log/httpd/error_log
yum install multitail # установка на Red Hat
apt-get install multitail # установка на Debian

# возврат к предыдущей директории
cd -

# мониторинг с регулярными интервалами
watch df

# продолжение выполнения программы после окончания сессии
nohup wget site.com/file.zip

# автоматический ответ yes или no
yes | apt-get update

# выполнение последней команды
!!

# создание протокола терминальной сессии
# для того, чтобы записать в файл всё, что было выведено в окне терминала, можно воспользоваться командой script.
# после выхода из сессии протокол будет записан в файл typescript.

# Замена пробелов на знаки табуляции
cat geeks.txt | tr ':[space]:' '\t' > out.txt

# Замена строчных букв на прописные
cat myfile | tr a-z A-Z > output.txt

# Автоматическое формирование списка аргументов
find. -name *.png -type f -print | xargs tar -cvzf images.tar.gz
cat urls.txt | xargs wget

# вывод первой команды передаётся в качестве аргумента в конце команды xargs
# следующая команда подставит вывод на место {}, при этом добавлен аргумент -i
ls /etc/*.conf | xargs -i cp {} /home/likegeeks/Desktop/out

Теги: ssh, bitrix, mysql