Вследствие довольно странной настройки сервера на многих хостинг-площадках приходится сталкиваться с определенными трудностями работы с сайтом. Все нижесказанное имеет силу только для 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
Постовой: Статьи о компьютерной технике.