Команды работы с сервером для web-разработчика

Вследствие довольно странной настройки сервера на многих хостинг-площадках приходится сталкиваться с определенными трудностями работы с сайтом. Все нижесказанное имеет силу только для web-серверов с операционной системой семейства unix, коих абсолютное большинство. Чаще всего проблемы возникают, когда выданные хостером логин-пароль пользователя не позволяют редактировать файлы, созданные пользователем, под которым запущен web-сервер.

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

<?
$pown = posix_getpwuid(posix_geteuid());
echo "Process Owner: " . $pown["name"] . ", " . $pown["uid"] . "";
?>

Рекурсивно поменять владельца файлов можно командой:

chown --recursive пользователь:группа /полный/путь

Если у пользователя к ее выполнению не хватает ssh доступа, можно использовать команду php system.

Следующая команда выполнит рекурсивное применение правил для всех файлов в текущей директории, а также для всех файлов во всех поддиректориях:

# find . -type f -exec chmod 644 {} \;

Следующая команда выполнит рекурсивное применение правил для всех директорий в текущей директории, а также для всех директорий во всех поддиректориях:

# find . -type d -exec chmod 755 {} \;

Команды работы с архивами:

tar xvfz *.tar.gz – распаковать архив
tar -czvf file.tar.gz /full/path – создать .tar.gz (архив)

Узнать занимаемое на сервере место:

du –sh <каталог>

Узнать размеры папок в текущей

du -sh *

Узнать свободное место на сервере

df -h

Сколько задействовано индексных дескрипторов

df -i

Посмотреть список процессов

top

Найти нужный процесс по команде (в примере ищем по php)

top | grep php

Убить процесс (в примере убиваем процесс с id 12341)

kill 12341

Перезапустить сервис (без <> естественно)

service <имя сервиса> restart

Работа с резервированием файлов:

Создание полной резервной копии директории:

dump -0aj -f /путь_куда/имя_файла_резервной_копии.bak /папка/для/резервирования

Создание инкрементальной резервной копии директории:

dump -1aj -f /путь_куда/имя_файла_резервной_копии.bak /папка/для/резервирования

Восстановление из резервной копии:

restore -if /путь_к_копии/имя_файла_резервной_копии.bak

Работа с mysql

Сделать дамп базы:

> mysqldump -uLOGIN -PPORT -hHOST -pPASS DBNAME > dump.txt

Восстановить базу из дампа:

> mysql -uLOGIN -PPORT -hHOST -pPASS DBNAME < dump.txt

Значение ключей утилиты:
—databases позволяет сделать так, что mysqldump включит в сценарий восстановления команды CREATE DATABASE /*!33333 IF NOT EXISTS*/ DBNAME и USE DBNAME. Это позволит создавать рабочие базы «с нуля». То есть без использования —databases подразумевается, что пользователь восстанавливает одну базу данных и явно указывает, куда нужно помещать восстанавливаемые данные. Если же backup создается с целью сделать полностью рабочую копию данных, например, на другом MySQL-сервере, то нужно использовать этот ключ;

—all-databases позволяет сделать копии всех баз данных, которые существуют на данном MySQL-сервере. Если же нужно сделать копии только некоторых баз, нужно просто указать их через пробел при вызове mysqldump из командной строки (см. выше);

Ключ —help. Программа mysqldump имеет множество версий. Посмотреть, какие возможности поддерживаются конкретно Вашей версией, можно с помощью этого ключа;

—add-drop-table — ключ, который заставит mysqldump добавлять в итоговый сценарий команду drop table перед созданием таблиц. Это позволит избежать некоторых ошибок при восстановлении базы из резервной копии. Конечно, нужно учитывать то, что таблицы, находящиеся в рабочей копии (если таблицы с таким же именем существуют в backup), перед восстановлением из резервной копии будут удалены из основной базы и пересозданы из backup;

—no-data. С помощью этого ключа можно быстро сделать копию структуры таблицы/баз без самих данных. Например, Вы создали сложную таблицу и хотели бы сохранить на будущее ее структуру, а сами данные, которые находятся в этой таблице, Вам в резервной копии не нужны;

—result-file=… — этот ключ можно использовать для перенаправления вывода в файл. Можно использовать обычное unix-перенаправление командой «>», а можно — вот этот ключ. Кому что нравится;

UPD:

монтировать раздел:

sudo mount -t ext3 -o rw /dev/sdb1 /home/user/Видео

где -t ext3 — файловая система

-o rw — права на раздел

/dev/sdb1 — устройство

/home/user/Видео — папка для монитрования

отмонтировать раздел:

# sudo umount /home/user/Видео

Удалить раздел из загрузки — убрать из файла /etc/fstab

Порты

Список всех открытых портов (TCP)

netstat -at

Список всех открытых портов (UDP)

netstat -au

Список только прослушиваемых портов (TCP)

netstat -lt

Статистика по всем открытым портам

netstat -s

Подробное отображение списка с открытыми портами — добавлен PID и имя процессов

netstat -p

Объединим все ключи в полезную команду для просмотра открытых TCP/UDP портов с именами процессов (может понадобиться root-доступ)

netstat -ltupn

Список подключенных хостов

netstat -lantp | grep ESTABLISHED |awk '{print $5}' | awk -F: '{print $1}' | sort -u

Постовой: Статьи о компьютерной технике.