12 заметок с тегом

linux

Регулировка яркости подключенного монитора

В Linux это можно отрегулировать в терминале такой командой:

xrandr --output VGA-1 --brightness 0.5

VGA-1 — это порт, через который у меня подключен внешний монитор. У вас это может быть совсем другой — обязательно проверьте

27 декабря   linux   xrandr   яркость экрана
2018   linux
2018   linux   redis   redis-server   ubuntu

Сравнить два файла в linux

Например, в одном файле определенные значения (может быть, Id какого-либо параметра), и в другом. И нужно найти расхождения.
Для этого применим в консоли функцию:

grep -f file2.txt -vFx file1.txt  > result.txt

В итоге, в файл result.txt вы получите недостающие параметры, которых нет в файле file2.txt, и которые есть в файле file1.txt

2017   grep   linux

Назначим права доступа на директории и файлы на Linux

Все знают, что выставить, например, права 755 на все вложенные файлы можно так:

chmod -R 755 /path/to/dir

А вот, чтобы выставить права только на вложенные директории, может пригодиться команда:

find /path/to/dir -type d -exec chmod 755 {} +

Только на влженные файлы:

find /path/to/dir -type f -exec chmod 644 {} +
2017   chmod   linux

Размер директорий в консоли Linux

Если в консоли доступен MC, то мы можем посмотреть и увидеть следующее:

размеры показываются только для файлов.

Если недоступен MC (например, на продакшн сервере), то нам поможет команда:

ls -la

Правда, ни в первом, ни во втором случае мы не видим размеров вложенных директорий.
А достаточно выполнить следующую команду, которая не только укажет размер, но и отсортирует вложенные директории по убыванию:

du -sh * | sort -hr

Выглядеть это будет так:

2017   linux

Nginx и Apache в одной связке

Тема разжевана, но все же, в первую очередь для себя, как памятку сделаю. А может и еще кому пригодится.
На сервере Nginx будет обрабатывать только статичные запросы, а динамические запросы будет проксировать к Apache.
Проксирование будет происходить на определенный порт Apache, который будет доступен только локально. Т. е. извне попасть на этот порт будет нельзя.

Настройка Apache

sudo nano /etc/apache2/sites-available/000-default.conf

Конфиг может выглядеть так:

<VirtualHost 127.0.0.1:8080>
	ServerAlias mysite.ru
	DocumentRoot /var/www/mysite.ru
	<Directory /var/www/mysite.ru/>
		DirectoryIndex index.php
		Options FollowSymLinks
		AllowOverride None
		RewriteEngine on
		RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
		RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

		# Если запрашиваемая в URL директория или файл существуют обращаемся к ним напрямую
		RewriteCond %{REQUEST_FILENAME} !-f
		RewriteCond %{REQUEST_FILENAME} !-d
		# Если нет - перенаправляем запрос на index.php
		RewriteRule . index.php
	</Directory>

	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Стоит обратить как указан VirtualHost:

VirtualHost 127.0.0.1:8080

Порт, соответственно, подберите сами.

Теперь включим порт:

sudo nano /etc/apache2/ports.conf

Пишем в данный файл:

Listen 127.0.0.1:8080

Сохраняем изменения и перезапустим Апач:

sudo service apache2 restart

Настройка Nginx

Создадим для нашего сайта новый конфиг

nano /etc/nginx/sites-available/mysite.ru

И вставляем в этот файл следующий кусок:

server {
	listen 80;
	listen [::]:80;

	root /var/www/mysite.ru;
	index index.php index.html index.htm;

	server_name mysite.ru;
	location / {
	    # Далее проксируем динамику на Апач
	    proxy_pass http://127.0.0.1:8080/;
	    proxy_set_header Host $host;
	    proxy_set_header X-Real-IP $remote_addr;
	    proxy_set_header X-Forwarded-For $remote_addr;
	    proxy_connect_timeout 120;
	    proxy_send_timeout 120;
	    proxy_read_timeout 180;
	}
	# Статику обрабатывает Нджинкс самостоятельно
	location ~* \.(jpg|jpeg|gif|png|ico|css|bmp|swf|js|html|txt)$ {
	    expires max;
	    root /var/www/mysite.ru;
	}
	# Запрещаем
	location ~ /\.(ht|svn|git) {
	    deny all;
	}
}

Сохраним изменения и рестартанем nginx:

sudo service nginx restart

А теперь в браузере набираем mysite.ru и проверяем работоспособность данной схемы.

2016   apache2   linux   nginx   nginx+apache   сервер

Comodo, ssl и nginx

Привет всем, и сегодня установим сертификат от Comodo!
На старте, открывает консоль Линукс-сервера:

openssl req -newkey rsa:2048 -nodes   -keyout opotemkin.key   -out opotemkin.csr

т. е. одновременно создаем приватный ключ opotemkin.key и csr-файл opotemkin.csr. Последний файл и надо отдать в Comodo.
Через некоторое время от Comodo придет ответ в виде архива, внутри которого вы увидите четыре файла:

  • AddTrustExternalCARoot.crt
  • COMODORSAAddTrustCA.crt
  • COMODORSADomainValidationSecureServerCA.crt
  • www_opotemkin_ru.crt

где ssl-сертификатом является www_opotemkin_ru.crt.

Необходимо провести проверку md5 хешем, чтобы убедиться, что присланный нам сертифкат SSL соответствует нашему приватному ключу opotemkin.key:

openssl req -noout -modulus -in opotemkin.csr | openssl md5
(stdin)= 836e6f7ca67b36229da84958b7ab5fc0

openssl rsa -noout -modulus -in opotemkin.key | openssl md5
(stdin)= 836e6f7ca67b36229da84958b7ab5fc0

openssl x509 -noout -modulus -in www_opotemkin_ru.crt | openssl md5
(stdin)= 836e6f7ca67b36229da84958b7ab5fc0

Теперь складываем данные файлы на нашем Линукс-сервере, например, сложим в /home/oleg/ssh-keys/
Теперь в целях безопасности зададим следующие права:

chmod -R 400  /home/oleg/ssh-keys/
chown -R www-data:www-data /home/oleg/ssh-keys/

Теперь создадим, т. н. бандл-сертификат (ca-bundle), внутри которого будет содержаться информация обо всех сертификатах, присланных Comodo.
Важно! Данный сертификат необходимо генерировать в определенном порядке!
Открываем консоль Линукса на сервере в директории, в которой лежат наши сертификаты:

cat www_opotemkin_ru.crt \ 
COMODORSADomainValidationSecureServerCA.crt \ 
COMODORSAAddTrustCA.crt \ 
AddTrustExternalCARoot.crt > www_opotemkin_ru.ca-bundle.crt

Чтобы корректно настроить nginx, вы можете прочитать следующий мануал nginx

В нашем случае это выглядит так:
Открываем на редактирование файл /etc/nginx/sites-available/default

Добавляем, ниже настроек для 80-го порта:

server {
	listen *:443 ssl;
	server_name opotemkin.ru www.opotemkin.ru;
	keepalive_timeout   70;

	ssl on;
	ssl_certificate /home/oleg/ssh-keys/www_opotemkin_ru.ca-bundle.crt;
	ssl_certificate_key /home/oleg/ssh-keys/opotemkin.key;

	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
	ssl_ciphers HIGH:!aNULL:!MD5;

	ssl_session_cache shared:SSL:10m;
	ssl_session_timeout 10m;
	....
}

А для 80-го порта укажем следующее:

server {
        ...
        listen *:80;
        server_name opotemkin.ru www.opotemkin.ru;
        rewrite ^(.*) https://opotemkin.ru$1 permanent;
        ....
}

Осталось выполнить рестарт nginx:

nginx -s reload
2016   Comodo   linux   md5   nginx   openssl   ssl

Выполнить запрос к API из консоли Линукс

Иногда достаточно иметь под рукой только консоль Линукса, чтобы «вытворять» немыслимое :)

Но сейчас о простом: например, рядом нет браузера, или вы сидите на сервере без исков, а надо проверить, например, запрос к API.
Достаточно выполнить следующее:

lynx -dump -source 'http://localhost:3000/api/get'

В ответ получите результат запроса непосредственно в консоль. Удобно и быстро.

2016   bash   linux   lynx   линукс

Если не работает wi-fi в Линуксе

У меня «рабочая лошадка» Lenovo G700. Устанавливаю Ubuntu (или Linux Mint), все хорошо, но в результате я получаю «сломанный» wi-fi. Т. е. по проводу все работает, а вот коннектиться к моему любимому роутеру не получается. И к соседскому роутеру тоже :)
Судя по тому, что я нагуглил — это проблема данной модели. По крайней мере установка любого линукс-дистрибутива любой версии не решало эту проблему. Мне было принципиально это проверить)
Решается просто. Подключаем провод в роутер и в компьютер (или ноутбук, нетбук, планшет...). Или напрямую «выделенку» в компьютер.

sudo apt-get update
sudo apt-get --reinstall install bcmwl-kernel-source

Проверьте, доступные wi-fi коннекты предстанут вашему взору

2016   bcmwl-kernel-source   kernel   linux   mint   ubuntu   wi-fi
Ctrl + ↓ Ранее