Обучаю битриксу программистов, интеграторов

Сисадминистрирование: команды BitrixVM, да и вообще команды Linux

Я не сисадмин, это шпаргалка для меня. Я плохо разбираюсь в командах, но надо.

перезагузить сервер
вариант 1 (не везде работает)
systemctl restart httpd
вариант2
в командной строке
reboot
посмотреть текущие процессы
top

убить процесс
kill -сигнал pid_процесса
pid процесса видно в топ
сигнал (можно не указывать, по умолчанию SIGTERM):
  • SIGINT - самый безобидный сигнал завершения, означает Interrupt. Он отправляется процессу, запущенному из терминала с помощью сочетания клавиш Ctrl+C. Процесс правильно завершает все свои действия и возвращает управление;
  • SIGQUIT - это еще один сигнал, который отправляется с помощью сочетания клавиш, программе, запущенной в терминале. Он сообщает ей что нужно завершиться и программа может выполнить корректное завершение или проигнорировать сигнал. В отличие от предыдущего, она генерирует дамп памяти. Сочетание клавиш Ctrl+/;
  • SIGHUP - сообщает процессу, что соединение с управляющим терминалом разорвано, отправляется, в основном, системой при разрыве соединения с интернетом;
  • SIGTERM - немедленно завершает процесс, но обрабатывается программой, поэтому позволяет ей завершить дочерние процессы и освободить все ресурсы;
  • SIGKILL - тоже немедленно завершает процесс, но, в отличие от предыдущего варианта, он не передается самому процессу, а обрабатывается ядром. Поэтому ресурсы и дочерние процессы остаются запущенными.
MySQL

Запуск сервера, остановка, перезагрузка
systemctl start mysqld
systemctl stop mysqld
systemctl restart mysqld
раньше так
service mysqld start
service mysqld stop
service mysqld restart
для debian 7 и 8 можно так
/etc/init.d/mysqld start
/etc/init.d/mysqld stop
/etc/init.d/mysqld restart

Открыть порты в телефонии
для файервола iptables (уже вроде нет его, надо смотреть firewalld)
iptables -I INPUT -p udp --dport 3478 -j ACCEPT
iptables -I INPUT -p udp --dport 5060 -j ACCEPT
iptables -I INPUT -p tcp --dport 3478 -j ACCEPT
iptables -I INPUT -p tcp --dport 5060 -j ACCEPT
iptables -I INPUT -p udp --dport 8000:48000 -j ACCEPT
запишется в /etc/sysconfig/iptables
CURL поставить
  1. yum install php-curl
  2. Пакет установлен, но не факт что подключено расширение php
  3. ls /etc/php.d/ (посмотреть)
  4. Скорее всего там будет лежать файл curl.ini.disabled
  5. mv /etc/php.d/curl.ini.disabled /etc/php.d/curl.ini   mv /etc/php.d/20-curl.ini.disabled /etc/php.d/20-curl.ini (у меня такие название были)
  6. systemctl restart httpd.service (или просто reboot)
для гита
sudo -i
cd /home/bitrix/ext_www/git.#####.com/public
git checkout urlrewrite.php

установить пакет пхп с помощью composer
переходим в папку с  composer.json
для билда
sudo -i
cd /disk/builds/sites/composer/
sudo -i
cd /home/bitrix/ext_www/composer/

для билда в файле composer.json меняем билд на нужный
смотрим пакеты, если есть нужный, то в командной строке
composer install
если нет, то идем на https://packagist.org/explore/ ищем название нужного пакета, например, slothsoft/unity
composer require slothsoft/unity


Запустить антивирусный сканер PHP-Antimalware-Scanner
просканирует и запишет в лог по умолчанию сюда /opt/scanner.log
php /opt/scanner --auto-skip  /home/bitrix/ext_www/ 
опции сканера

Поиск
по названию файла

найти файлы в /home/bitrix/ext_www/
find /home/bitrix/ext_www/ -iname '*.cgi'
find /home/bitrix/ext_www/ -iname '.htaccess'
найти файлы и найденные удалить (2 варианта, зависит от навстроек find)
вариант 1
find  /home/bitrix/ext_www/ -iname ".htaccess" -type f -delete
вариант 2
find  /home/bitrix/ext_www/ -iname ".htaccess" -exec rm {} \;
по содержимому файлов
найти файлы, содержащие строку в /home/bitrix/ext_www/
grep -r 'wyzdy' /home/bitrix/ext_www
для поиска вирусни
grep -r 'curl_init' /home/bitrix/ext_www
grep -r 'file_get_contents' /home/bitrix/ext_www
grep -r 'file_get_contents' /home/bitrix/ext_www
grep -r 'str_rot13' /home/bitrix/ext_www
grep -r 'CControllerClient::RunCommand' /home/bitrix/ext_www
grep -r 'hex2bin' /home/bitrix/ext_www


Операции с файлами
lsпоказать список файлов и каталогов
ls -alпоказать все файлы на сервере (даже скрытые) + размер + владельца + права на фалы + дату изменения
cd директорияперейти в указанную директорию;
cdперейти в домашний каталог
pwdпоказать текущую папку
mkdir директориясоздать папку "директория"
rm имя_файлаудалить файл с именем имя_файла
rm -r диреторияудалить папку "директория"
cp файл1 файл2скопировать файл1 в файл2
cp -r папка1 папка2скопировать папка1 в папка2
touch файлсоздать файл и с именем "файл"
cat > файлнаправить стандартный ввод в "файл"
more файлпоказать содержимое файл
head файлпоказывает первые 10 строк из файла
tail файлпоказывает последние 10 строк из файла
скопировать
cp /home/veronika/file.exe /home/bitrix/ext_www/git.#####.com/public/upload/products/file.exe
примеры по команде mv https://pingvinus.ru/note/cmd-mv
Переместить папку, файл
Переместить файл file.txt в директорию dir1/ (директория должна существовать)
mv file.txt dir1/
если несколько файлов
mv file.txt file1.txt file2.txt dir1/
если все файлы текущей директории
mv * dir1/

Переименовать папку, файл
Переименовать файл file.txt в file2.txt
mv file.txt file2.txt
Переименовать директорию dir1 в dir2
mv dir1 dir2
Или Midnight Commander - консольный файловый менеджер для Linux
mc


Работа с процессами
psпоказывает текущие процессы, которые активны
topпоказывает все процессы
kill процессубивает процесс с id "процесс"
killall процубивает все процессы с именем проц
bgпоказывает список фоновых задач, а также остановленных;
bg процесспродолжит выполнение остановленного процесса в фоне
Операции с правами доступа к файлам
chmod 755 файлзадает права 755 для файла
find /path/to/dir -type f -exec chmod 0644 {}укажет права 644 на все файлы на сервере
find /path/to/dir -type d -exec chmod 0755 {}укажет права 755 на все папки на сервере

Информация о системе
dateпоказать время и дату
calпоказать календарь
uptimeпроверить аптайм (время безотканой работы)
wпокажет количество пользователей, которые в данный момент используют сервер
whoamiпокажет Ваш логин
finger юзерпокажет инфу о пользователе "юзер"
uname -aинформация про ядро
cat /proc/cpuinfoинформация про CPU
cat /proc/meminfoинформация про память
man командапокажет все о команде
dfинформация о дисках
duпокажет, сколько памяти занимает текущий каталог
freeсколько памяти используется
whereis программанайдет место расположения программы
which программаопределеяет, что "программа" будет запущена первой
vmstatпокажет загрузку процессора

Работа с системой и базами данных
apachectl restartперезапуск сервера Apache
apachectl startsslзапуск сервера Apache
apachectl stopвыключение сервера Apache
/usr/local/etc/rc.d/mysql-server restartперезапуск MySQL
mysqldump -u имя_пользователя_БД -pпароль_пользователя_БД имя_бд > /полный/путь/бд.sqlсоздать копию базы данных бд.sql
mysql -u имя_пользователя_БД -pпароль_пользователя_БД -D имя_бд < /полный/путь/бд.sqlимпортировать бд.sql в базу данных mysql на сервере
exitвыйти из системы
rebootперезапуск сервера

Работа с архивами
tar cf myfile.tar файлызапаковать "файлы" в архив myfile.tar
tar xf myfile.tarразархивировать myfile.tar
tar czf myfile.tar.gz filesархивировать с использованием Gzip (особое сжатие на сервере)
tar xzf myfile.tar.gzразархивировать Gzip-файл
tar cjf myfile.tar.bz2архивировать с использованием Gzip
tar xjf myfile.tar.bz2разархивировать Bzip2-файл
gzip myfileзапаковать myfile и переименовать в его в myfile.gz
gzip -d myfile.gzраспаковать myfile.gz в myfile

Сеть
ping хостпоказывает пинг до хоста
whois домен.компоказывает WHOIS о домене "домен.ком"
dig домен.компоказывает на каких DNS находится домен "домен.ком"
wget myfileзакачивает на компьютер файл myfile
wget -c fileесли закачка была остановлена, то эта команда может ее продолжить
wget https://www.mysite.com/myfile.zipзагрузит файл из интернета (по адресу https://www.mysite.com/myfile.zip) в текущую директорию на сервере

Клавиши
Ctrl+Cпрекратить текущую команду
Ctrl+Dвыйти из системы\сменить пользоваателя (вместо этого можно использовать команду exit)
Ctrl+Uудаляет строку
Ctrl+Zостановка текущей команды и продолжить с fg или bg
Ctrl+Wудалить слово в текущей строке
!!повторяет последнюю команду
удалить вложенные файлы и папки, а саму папку оставить
sudo rm -rf /disk/builds/sites/build5/bitrix/cache/.*
sudo rm -rf /disk/builds/sites/build5/bitrix/cache/*
sudo rm -rf /disk/builds/sites/build5/bitrix/cache/*.*
посмотреть размер общий
du -sh /disk/builds/sites/build5/bitrix/
du -sh /var/lib/mysql/
посмотреть размер по подпапкам
du -h --max-depth=1 /disk/builds/sites/build5/bitrix/
du -h --max-depth=1 /var/lib/mysql/
интерактивная команда - ncdu  можно будет после выполнения ходить по подпапкам
ncdu /disk/builds/sites/build5/bitrix/ 
ncdu /var/lib/mysql/
посмотреть сколько вообще места
df -h
df -h /dev/sda1

DNS-кэш.
Очистите DNS-кэш на вашем компьютере и повторите попытку доступа на сайт через cmd
очистить содержимое кэш службы разрешения имен DNS
ipconfig /flushdns 
Для перезапуска службы DNSCache ( DNS-клиент) можно последовательно выполнить остановку и запуск службы.
net stop dnscache
net start dnscache
Чтобы очистить кэш в браузере, надо в поисковой строке вставить команду:
Chrome
chrome://net-internals/#dns;
Opera
opera://net-internals/#dns;
Яндекс:
browser://net-internals/#dns.


Чтобы настроить доступ по FTP на виртуальной машине (ВМ), сначала нужно установить FTP-сервер

Установите пакет FTP-сервера, например, vsftpd.
sudo apt-get update && sudo apt-get install vsftpd
После установки запустите службу:
sudo service vsftpd start
Затем нужно настроить фаервол:

FTP-сервер по умолчанию использует порт 21. Если у вас включен фаервол, откройте порт 21 для входящих соединений FTP.
sudo ufw allow 21/tcp
Затем стоит настроить FTP доступ:

Создайте пользователя, которому будет разрешен доступ по FTP на ВМ:
sudo adduser ftpuser
Назначьте пароль для нового пользователя:
sudo passwd ftpuser
Отредактируйте файл конфигурации FTP-сервера
sudo nano /etc/vsftpd.conf
Затем отредактируйте файл нижеуказанным образом, затем сохраните изменения, нажав Ctrl+X, затем Y и Enter
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
chroot_local_user=YES
user_sub_token=$USER
local_root=/home/$USER/ftp
pasv_min_port=40000
pasv_max_port=50000
listen=NO
listen_ipv6=YES
Создайте каталог FTP для нового пользователя
sudo mkdir /home/ftpuser/ftp
Назначьте права на каталог
sudo chown nobody:nogroup /home/ftpuser/ftp
Перезапустите FTP-сервер:
sudo service vsftpd restart
Если блог был полезным, можете угостить меня "чашечкой кофе" :)

Сбер по номеру телефона +7 (953) 585-13-09 Вероника.
Спасибо!