SSH ( Secure Shell — «безопасная оболочка»)

Для выполнения некоторых операций (администрирование БД, компиляция программ e.t.c.) нужно воспользоваться так называемым shell-доступом по протоколу ssh. Это «терминальный доступ», т.е. с помощью специального программного обеспечения ваш компьютер становится удаленным терминалом другого компьютера и можно запускать программы с компьютера, к которому вы подключились.

С помощью этого протокола можно осуществлять работу с удаленным сервером в консоли — отлаживать, запускать программы. Кроме того, этот протокол позволяет осуществлять передачу файлов

SSH позволяет безопасно передавать в незащищенной среде практически любой другой сетевой протокол. Весь трафик, передаваемый по этому протоколу, шифруется

Для работы по SSH нужен SSH-сервер и SSH-клиент. Сервер прослушивает соединения от клиентских машин и при установлении связи производит аутентификацию, после чего начинает обслуживание клиента. Клиент используется для входа на удаленную машину и выполнения команд.

PuTTY — свободно распространяемый клиент для протоколов SSH, Telnet, rlogin и чистого TCP.

Нужно знать логин и пароль для ssh доступа и дальше в терминальном режиме вводить команды:

Команды работы с файлами и директориями

mkdir - команда служит для создания директории. Пример: mkdir test, создаст директорию test в текущей.

rmdir - команда служит для удаления пустой директории (для удаления непустых директорий надо использовать rm -rf directory).
rm filename - удалить файл или директорию.
cd directory - команда служит для навигации по каталогам, пример: "cd ~/public_html" произведет заход в директорию public_html вашего домашнего каталога.
pwd - показывает абсолютный путь до каталога, в котором вы находитесь.
cp ~/from/<filename> ~/to/<filename> - скопировать файл или директорию. Чтобы скопировать каталог из одной директории в другую, используйте данную команду с ключами -rf, например cp -rf ~/from/directory/ ~/to/directory.
scp -r ./* new_login@new_host:~/ - защищенное копирование файлов из текущей директории на новую машину (используйте при переносе вашего сайта, например, с виртуального хостинга на VPS).
rsync -avH --progress * new_login@new_host:~/ - синхронизация данных. Файлы заменяются более новыми. Главное отличие от scp, то что при обрыве rsync начинает синхронизировать с места разъединения.
wget -c -m --passive-ftp -nH ftp://login:pass@host/ - копирование по ftp. Параметр "-с" позволяет докачивать файлы. Может пригодиться, когда rsync не в состоянии синхронизировать большой файл.
mv ~/from/<filename> ~/to/<filename> - переместить файл или директорию (также можно использовать для переименования файлов).
ls -al - показывает все файлы в текущем каталоге. При помощи нее вы можете также посмотреть права на файлы и директории, а также владельца и группу, рассмотрим на конкретном примере:
-rw-r--r-- 1 username group - 851 Jul 8 17:40 .profile
-rw-r--r-- это права, которые установлены на текущий файл. В цифровом эквиваленте 644.
username - это имя владельца текущего файла.
group - это имя группы текущего файла.
851 - размер файла в байтах.
Jul 8 17:40 - время последнего редактирования файла.
.profile - имя файла.

ln -s - создает символическую ссылку. Пример: ln -s /home/test/html WWW - cоздаст в текущем каталоге ссылку на /home/test/html, имя ссылки WWW.
du -h - вычисляет место, занятое папками и файлами на диске, при этом выводится размер каждой папки. Если набрать с ключем -s будет показана только сумма.
find ./ -name 'filename' - осуществляет рекурсивный поиск файлов/директорий с именем filename во всех папках, начиная с текущей.
chmod 755 filename - изменить права на filename. На все файлы страниц и php-скрипты рекомендуется ставить 644, а на perl скрипты - 755.

Команды просмотра/редактирования файлов

cat filename - открывает filename на чтение, выводится все содержимое файла.
cat > filename - открывает/создаёт файл для перезаписи. Если файл существует, он обнулится!
cat >> filename - открывает файл для записи в конец файла.
less filename - открывает filename на чтение, поэкранный вывод содержимого.
tail -n 10 filename - вывод последних 10 строк файла filename.
ee filename - текстовый консольный редактор файлов.
vi filename - текстовый консольный редактор файлов.
mcedit filename - текстовый редактор midnight commander'a.
grep 'text' filename - поиск подстроки 'text' в файле filename. При указании * вместо filename, поиск будет во всех файлах данной директории.
iconv -f cp1251 -t utf-8 file - перекодирование файла из cp1251 в UTF8.

Команды просмотра процессов

top - просмотр собственных процессов в реальном времени.
ps auxwj - показывает много полезной информации по текущим процессам, их id, приложения, их вызывающие и тд.

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

tar -zxf archive_name.tgz - разархивировать файл в текущий каталог.
tar -zcf archive_name.tgz filename - создать архив, вместо filename можно также указывать имя директории, тогда она будет тоже заархивирована. Архив создается в текущем каталоге.

Команды работы с базами MySQL

mysqldump --opt -Q -u username -ppassword database_name > filename.sql - сделать dump базы данных database_name в файл filename.sql, username - имя пользователя к базе данных, dump которой вы хотите сделать.
mysql -u username -ppassword database_name < filename.sql - распаковать dump из файла filename.sql в базу данных database_name, username - имя пользователя к базе данных, в которую вы хотите распаковать dump.
mysql -u username -ppassword database_name - работа с базой database_name через командную строку. В этом режиме можно выполнять команды MySQL. Обратите внимание на то, что команда обязательно должна заканчиваться символом ";", иначе выполнена она не будет.

Команды автоматизации cron

27/12/2009