Шпаргалка по SSH
Частенько приходится работать через консоль, поэтому решил собрать здесь основные команды, которые приходится применять чаще всего. Раньше в браузере была куча закладок, на страницы сторонних сайтов, с решением той или иной задачи. Я решил, что лучше все собрать в одном месте. По мере поступления новых must-have буду обновлять. Итак, поехали:
Архивы
Создать архив .tar/.tar.gz
tar -cvf file.tar /full/path — создать .tar (без сжатия)
tar -czvf file.tar.gz /full/path — создать .tar.gz (архив GZip)
Распаковать архив .tar/.tar.gz
tar -xvf file.tar — распаковать обычный .tar (без сжатия)
tar -xzvf file.tar.gz — распаковать .tar.gz (запакованны GZip-ом)
Распаковать архив .gz (GZip, без TAR)
gunzip file.gz — распаковать обычный .gz (GZip, без TAR. Распаковываемый архив должен иметь права на исполнение: chmod +x file.gz)
Базы данных MySQL
Импорт дампа базы данных
mysql -u db_user -p -h localhost db_name < dump.sql
Импорт дампа базы данных, упакованных в gzip (*.sql.gz)
gunzip < dump.sql.gz | mysql -u db_user -p db_name
Экспорт базы данных (создание дампа)
mysqldump -u db_user -p -h localhost db_name > dump.sql
Создание архива GZip с дампом БД
mysqldump -u db_user -p -h localhost db_name | gzip > dump.tar.gz
Создание дампа нескольких баз данных одновременно
mysqldump -u db_user -p -h localhost -B db_name1 db_name2 db_name3 > databases.sql
Создание дампа всех баз данных
mysqldump -u db_user -p -h localhost -A > all-databases.sql
Сохранить только структуру БД
mysqldump —no-data -u db_user -p -h localhost db_name > schema.sql
Создание дампа только одной или нескольких таблиц БД
mysqldump -u db_user -p -h localhost db_name tbl_name1 tbl_name2 tbl_name3 > dump.sql
Дополнительные атрибуты (уменьшают размер дампа и повышают скорость работы)
mysqldump -Q -c -e -u db_user -p -h localhost db_name > /path/to/file/dump.sql
— Q — оборачивает имена обратными кавычками;
— c — делает полную вставку, включая имена колонок;
— e — делает расширенную вставку.
Если не запускается MySQL, лог ошибок можно увидеть прямо в консоли (команда для Windows)
mysqld —defaults-file=C:Program Files…my.ini —console
Файлы/директории
Узнать абсолютный путь до текущего каталога
pwd
Удалить папку со всем ее содержимым
rm -R /path/to/dir
Создать символьную ссылку
ln -s /etc/apache2/sites-available/site.com.conf /etc/apache2/sites-enabled/site.com.conf
Подсчитать количество файлов в текущем каталоге (включая вложенные)
find . -type f | wc -l
Подсчитать занимаемый размер каталога
du -sh /var
Вывести на экран количество файлов в поддиректориях текущего каталога
for D in `ls -Fl | grep / | awk ‘{print $9}’` ; do echo $D `find -L $D -type f -print | wc -l` ; done
Удалить в директории все файлы старше N дней
find /home/user -type f -mtime +N -exec rm {} ;
Узнать информацию об использовании inodes (файловых дескрипторов):
df -i
Создать патч
diff -uN file.orig file.new > file.patch
Наложить патч
patch file.orig < file.patch
Найти определенные файлы и скопировать их с сохранением иерархии
find . -name «ru.po» -exec cp —parents «{}» /destination/dir/ «;»
Прочее
Вывести последние 10 строк из лог-файла, с автообновлением в реальном времени
tail -n10 -f /var/log/sites/your-site.ru.error.log
(путь до файлов с логами Apache у вас скорее всего будет другим)
Узнать информацию о процессоре
cat /proc/cpuinfo
или
lscpu
Показать ТОП10 медленных запросов MySQL (сортировка по времени исполнения time):
mysqldumpslow -s t -t 10 /var/log/mysql-slow.log
Показать ТОП10 запросов MySQL, в который не используются индексы (сортировка по кол-ву вызовов count):
mysqldumpslow -s c -t 10 /var/log/mysql-slow.log
Установить корректно конвертер шрифтов (Debian):
apt-get install libssl-dev build-essential zlibc zlib-bin libidn11-dev libidn11
wget http://people.mozilla.com/~jkew/woff/woff-code-latest.zip
unzip woff-code-latest.zip -d sfnt2woff && cd sfnt2woff && make && mv sfnt2woff /usr/local/bin/