21Дек 2016

0

240

Необходимые команды SSH

команды ssh, команды linux, команды centos, grep, find, ssh, секреты ssh

Управляем сервером по SSH. Хитрые команды SSH.

SSH — самый распотсраненный инструмент системного администратора. Каждый день тысячи людей используют SSH для подключения к серверам, домашним машинам, роутеpам и даже смартфонам. SSH-клиенты есть для всех сколько-нибудь популярных платфоpм, а сервер SSH встраивают даже в умные лампочки. Но готов ли ты сказать, что на самoм деле знаешь обо всех возможностях SSH?

Свободная реализaция протокола SSH, названная OpenSSH, была выпущена разработчиками OpenBSD еще в 1999 году. И сегодня это де-факто стандaрт безопасного и удобного подключения к удаленной кoнсоли. Спустя семнадцать лет разработки в OpenSSH появилось огромное количеcтво возможностей, настроек и режимов работы, о которых знают дaлеко не все пользователи.

Эта руководство — своего рода сборник быстрых рецептов, который ты можeшь заучить или положить в закладки и всегда пользоваться. Команды приведены для Linux, но большинство из них будут работать и в любой другой ОС, для которой еcть сборка OpenSSH. Удаленный юзер и сервер в тексте всегда обозначаются как user@server, а по отдeльности как <user> и <server>.

1. Выполняем быстро одну команду на сервере Linux

Для этого в командной строке пишем

ssh user@server "service httpd restart"

Эта команда перезагрузит веб сервер httpd, и у Вас не будет необходимости авторизовываться на нем. Вместо «service httpd restart» — можно написать любую команду.

2. Подключаем любой каталог сервера как папку на ПК, с помощью sshfs

Для этого на сервере делаем следующее:

sudo yum install sshfs

Создаем каталог, куда будем монтировать папку

mkdir ~/server_files

Затем подключаем ее на локальном ПК, командой

sshfs user@server:/home/user ~/server_files/

3. Генерация случайных паролей в CentOS, без pwgen

Для этого достаточно выполнить команду

cat /dev/urandom| tr -dc 'a-zA-Z0-9' | fold -w 10| head -n 4

Выведено будет 4 строки, по 10 символов.

4. Массово меняем права на файлы и папки

Для того, что бы поменять права для всех директорий внутри папки /path/to/folder , на 755

find /path/to/folder -type d | xargs chmod 755

Поменять права для всех файлов, устанавливаем 644

find /path/to/folder -type f  | xargs chmod 644

5. Чем занята память на сервере? Смотрим размер директорий на сервере по SSH

Это довольно просто, и делается одной командой:

du -lh --max-depth=1

6. Удаляем из файла пустые строки, с помощью grep, по SSH

Пишем команду:

grep -v "^$" filename > newfilename

7. Меняем в файле все вхождения слова новое на старое, в консоли SSH

Это делается командой sed :

sed -i 's/новое/старое/g' /path/file.txt

8. Ищем файл по имени, на сервере Linux, с помощью консоли

Нам поможет команда Find

find ~/ -type f -name test

Если известно только начало имени — можно использовать такую конструкцию :

find ~/ -type f -name test*

 

9. Меняем кодировку документов в папке, с помощью командной строки, с CP-1251 на UTF-8

Для этого пишем небольшой bash-скрипт  в той директории где лежат файлы для конвертации — nano convert.sh

#!/bin/bash

for i in `find ./ -name "*.html"`
do
tr -d "\r" < $i > $i.tr
iconv -f cp1251 -t utf-8 < $i.tr > $i.utf
rm $i $i.tr
mv $i.utf $i
done

Затем сохраняем и запускаем скрипт

sh convert.sh

10. Удаляем файлы с определенным расширением в командной строке Linux

Для этого пишем команду, в которой .jpg — меняем на нужный (или лучше сказать ненужный) формат файла.

find .  -type f -name \*.jpg | xargs rm -f

11. Копируем файлы с одного сервера на другой с помощью rsync

На втором сервере должен быть установлен rsync, если его нет нужно выполнить команду

yum install -y rsync

Затем идем на сервер, с которого необходимо копировать данные и выполняем следующую команду

rsync -avz --stats --progress /path/to/dir/ root@second.serv:/path/to/dir/

обратите внимание, что бы в конце первого и второго пути стоял /

12. Подключение цепочки SSH

Допустим, на одном из серверов заблокирован Ваш IP, по ошибке,  и нужно зайти на сервер, с помощью другого имеющегося сервера. Для этого пишем следующее:

ssh -t user@serv1 ssh user@serv2

13. Проверка скорости подключения по SSH

Для этого у Вас должна быть установлена утилита pv ( sudo yum install pv ), выполняем следующую команду

yes | pv | ssh user@server 'cat > /dev/null'

И видим скорость подключения к серверу по SSH

14. Нестабильный интернет и постоянно рвется связь с сервером по SSH? Устанавливаем вечную сессию по SSH.

Подключаемся к серверу следующей командой:

autossh -M50000 -t user@server ‘screen -raAd mysession’

Даже если соединение прервется, соединение останется открытым и при возникновении сигнала, Вы сможете продолжить работу с сервером.

15. Скопировать файл с сервера на локальный ПК

В этом поможет команда:

scp user@server:file.txt /path/to/dir

16. Импорт базы данных MySQL по SSH

Загружаем дамп БД на сервер и пишем следующую команду (исходим из того что БД и пользователя Вы уже создали)

mysql -ulogin -ppass  database_name < dump_name.sql

17. Экспорт дампа БД по SSH в SQL файл

Для этого используем утилиту MySQLdump

mysqldump -ulogin -ppass database_name > dump_name.sql

Статья рассчитана на людей которые уже имеют знания в администрирование серверов. В ближайшем будущем напишем статью для новичков с базовыми командами.