Решил составить пополняемый пост, по полезным командам в linux шелл, которые часто забываешь. Почта, хостинг, администрирование. Список убрал под кат.
Почта
Postfix — создание хэш базы пользователей
#postmap путь/имя_базы
Postfix — очистка (удаление) всей почтовой очереди
#postsuper -d ALL
Отправка почты из командной строки:
echo «test» | mail -s test username@gmail.com
Отправка почты из командной строки через curl:
curl —url ‘smtp://smtp.server.ru:25’ —mail-from ‘username_from@domain.ru’ —mail-rcpt ‘username_rec@domain.ru’ —upload-file mail.txt —user ‘authuser@domain.ru:password’
Хостинг
Apache2 — включение конфиг файла сайта в работу
#a2ensite имя_конфига
Администрирование
Свободное место
#df -h
Релиз Ubuntu
#lsb_release -a
Узнать UUID жесткого диска
#blkid
Вывод запущенных сервисов (статус)
#service —status-all
Для создания пары логин/пароль на доступ в конкретную директорию апача:
создаем юзера
#htpasswd -n username
в .htpasswd пишем вывод в форме логин двоеточие хэш (новый юзер на новой строке)
в .htaccess пишем все что надо, дополняя строкой require user user1 user2 (через пробел)
рестарты не нужны.
Размер папки
du -h -s /full/path/to/folder/
Убийство зомби
ps aux | grep -w Z # returns the zombies pid
ps o ppid {returned pid from previous command} # returns the parent
kill -1 {the parent id from previous command}
Алгоритм восстановления слетевшего загрузчика (на примере lilo)
- Грузимся с RipLinux
- Монтируем раздел
-
#chroot в раздел
-
#update-initramfs -k all
-
#lilo
Ну или #update-grub
- Выход, размонтирование, ребут.
Просмотр информации об операционной системе и апгрейд релизов в Ubuntu
# uname -a
# cat /etc/lsb-release
# do-release-upgrade (либо) do-release-upgrade -d
Создание gif анимации из командной строки.
Ставим пакет imagemagick, если нужно — ресайзим картинки
# mogrify -resize 640×480 *.jpg
Собираем гифку
# convert -delay 20 -loop 0 *.jpg myimage.gif
Выбор версии php по умолчанию
- В системе — #update-alternatives —config php
- В apache #a2dismode php5.6 && a2enmod php7.1 && systemctl restart apache2
Автозагрузка
18.04
#systemctl disable SERVICE #systemctl is-enabled SERVICE
14.04
#initctl show-config SERVICE #echo manual | sudo tee /etc/init/SERVICE.override
Нарезка файлов
Хотим порезать файл? Юзаем
truncate
Cron Крон от рута (как запланировать задания от рута?).
#crontab -eu root
Список заданий хранится тут:
/var/spool/cron
Поиск файлов по маске дат создания
find . -type f -newermt 2007-06-07 ! -newermt 2007-06-08
Вывод конфига без комментариев
grep -v -E «#|^$» ./file.conf
cat filename | grep -v ‘^#\|^$’
cat ./zabbix_agentd.conf | grep -v ^# | grep -v ^$
Посмотреть открытые порты
netstat -ntulp
Rsync с переносом (удалением исходных файлов)
rsync —remove-source-files -zvh backup.tar /tmp/backups/
DNS
Посмотреть spf записи для домена
dig -t txt yourdomain.ru
dig mx domain.com +short
dig email.domain.com CNAME +short
Посмотреть dkim для домена (с учетом сервера для запроса и с отсечением ненужного хлама в выводе)
dig mail._domainkey.bedandbreakfast-spb.ru txt 8.8.8.8 +short
Owncloud
Пример использования управление через командную строку (выполнять в рабочей папке содержащую скрипт)
sudo -u www-data php occ maintenance:mode —off
Если локально лежащие файлы не видны в вэб-интерфейсе хранилища, то идем в mysql, входим в базу owncloud и делаем TRUNCATE oc_filecache;
Хождение по ssh
- Жестко, ибо на примере рута. На хосте откуда хотим пойти на другой хост делаем:
- #ssh-keygen -t rsa // вводим имя, пароль если надо оставляем пустой
- Содержимое публичного ключа filename.pub добавляем на удаленный сервер (для рута) в /root/.ssh/authorized_keys
- Проверяем что всё командой вроде
- #ssh -i /root/.ssh/filename -o StrictHostKeyChecking=no root@172.16.150.15
Продолжение следует.
А какие команды обычно еле вспоминаете вы?
Добавить комментарий