Вследствие довольно странной настройки сервера на многих хостинг-площадках приходится сталкиваться с определенными трудностями работы с сайтом. Все нижесказанное имеет силу только для web-серверов с операционной системой семейства unix, коих абсолютное большинство. Чаще всего проблемы возникают, когда выданные хостером логин-пароль пользователя не позволяют редактировать файлы, созданные пользователем, под которым запущен web-сервер.
Посмотреть пользователя, под которым запущен сервер, можно несложным php-скриптом:
1 2 3 4 |
<? $pown = posix_getpwuid(posix_geteuid()); echo "Process Owner: " . $pown["name"] . ", " . $pown["uid"] . ""; ?> |
Рекурсивно поменять владельца файлов можно командой:
1 |
chown --recursive пользователь:группа /полный/путь |
Если у пользователя к ее выполнению не хватает ssh доступа, можно использовать команду php system.
Следующая команда выполнит рекурсивное применение правил для всех файлов в текущей директории, а также для всех файлов во всех поддиректориях:
1 |
# find . -type f -exec chmod 644 {} \; |
Следующая команда выполнит рекурсивное применение правил для всех директорий в текущей директории, а также для всех директорий во всех поддиректориях:
1 |
# find . -type d -exec chmod 755 {} \; |
Команды работы с архивами:
1 2 |
tar xvfz *.tar.gz – распаковать архив tar -czvf file.tar.gz /full/path – создать .tar.gz (архив) |
Узнать занимаемое на сервере место:
1 |
du –sh <каталог> |
Узнать размеры папок в текущей
1 |
du -sh * |
Узнать свободное место на сервере
1 |
df -h |
Сколько задействовано индексных дескрипторов
1 |
df -i |
Посмотреть список процессов
1 |
top |
Найти нужный процесс по команде (в примере ищем по php)
1 |
top | grep php |
Убить процесс (в примере убиваем процесс с id 12341)
1 |
kill 12341 |
Перезапустить сервис (без <> естественно)
1 |
service <имя сервиса> restart |
Работа с резервированием файлов:
Создание полной резервной копии директории:
1 |
dump -0aj -f /путь_куда/имя_файла_резервной_копии.bak /папка/для/резервирования |
Создание инкрементальной резервной копии директории:
1 |
dump -1aj -f /путь_куда/имя_файла_резервной_копии.bak /папка/для/резервирования |
Восстановление из резервной копии:
1 |
restore -if /путь_к_копии/имя_файла_резервной_копии.bak |
Работа с mysql
Сделать дамп базы:
1 |
> mysqldump -uLOGIN -PPORT -hHOST -pPASS DBNAME > dump.txt |
Восстановить базу из дампа:
1 |
> 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:
монтировать раздел:
1 |
sudo mount -t ext3 -o rw /dev/sdb1 /home/user/Видео |
где -t ext3 — файловая система
-o rw — права на раздел
/dev/sdb1 — устройство
/home/user/Видео — папка для монитрования
отмонтировать раздел:
1 |
# sudo umount /home/user/Видео |
Удалить раздел из загрузки — убрать из файла /etc/fstab
Порты
Список всех открытых портов (TCP)
1 |
<span class="title">netstat</span> -at |
Список всех открытых портов (UDP)
1 |
<span class="title">netstat</span> -au |
Список только прослушиваемых портов (TCP)
1 |
netstat <span class="operator">-lt</span> |
Статистика по всем открытым портам
1 |
netstat <span class="operator">-s</span> |
Подробное отображение списка с открытыми портами — добавлен PID и имя процессов
1 |
<span class="title">netstat</span> -p |
Объединим все ключи в полезную команду для просмотра открытых TCP/UDP портов с именами процессов (может понадобиться root-доступ)
1 |
<span class="title">netstat</span> -ltupn |
Список подключенных хостов
1 |
<span class="title">netstat</span> -lantp | grep ESTABLISHED |awk <span class="string">'{print <span class="variable">$5</span>}'</span> | awk -F: <span class="string">'{print <span class="variable">$1</span>}'</span> | sort -u |
Постовой: Статьи о компьютерной технике.