PostgreSQL
coub
express.js
freeware
git
jquery
laravel
links
linux
macos
mysql
node.js
php
powershell
python
ubuntu
vim
virtualbox
анекдот
блог
игры
интересно
стихи
цитаты
SSH KeepAlive (sshd config params)
February 10, 2015
Рвется ssh соединение? Лечится так:
sudo vim /etc/ssh/sshd_config
Теперь тестируем конфиг
sudo /usr/sbin/sshd -t
Ели все в порядке, то ошибок тест не покажет.
Теперь перезапускаем сервис и на этом всё.
sudo service ssh restart
Со стороны клиента удержания коннекта можно добиться добавив строки
sudo vim /etc/ssh/sshd_config
# добавляем строки ClientAliveInterval 30 ClientAliveCountMax 2Здесь написано что раз в 30 секунд будет отправлен "пустой" пакет для того чтобы удерживать живым соединение.
Теперь тестируем конфиг
sudo /usr/sbin/sshd -t
Ели все в порядке, то ошибок тест не покажет.
Теперь перезапускаем сервис и на этом всё.
sudo service ssh restart
Со стороны клиента удержания коннекта можно добиться добавив строки
Host * ServerAliveInterval 45В файл конфигурации ~/.ssh/config
Yandex.Disk + Thunar своими руками
January 19, 2015
Задача: реализовать функцию копирования в буфер обмена ссылки на опубликованный на Я.Диске файл.
Вообще в природе есть готовые решения, но меня они как-то не впечатлили.
Будем пользоваться
Добавляем новое действие. Вот такой командой пользуемся для публикации выбранного файла, копирования ссылки в буфер и отправки нотиса о завершении процедуры
Для быстрого постинга скриншотов, думаю вполне подойдет Shutter (ставится из репозиториев). Его можно настроить для сохранения скриншотов сразу в папке Я.Диск-а, настроить качество и формат скриншотов. В нем же есть небольшой графический редактор который позволяет кропать изображения, рисовать рамки-стрелки и т.д. Правда чтобы активировать редактор в Shutter нужно поставить ещё кое-что (по состоянию на сегодня это всё ещё требуется, странно что не ставится всё сразу).
Вообще в природе есть готовые решения, но меня они как-то не впечатлили.
Будем пользоваться
- yandex-disk - Собственно сам консольный клиент Yandex.Disk
- xclip - утилитка для копирования всякого в буфер обмена
- notify-send - утилита для отправки оповещений на уровне оконного менеджера (здесь xfce)
Добавляем новое действие. Вот такой командой пользуемся для публикации выбранного файла, копирования ссылки в буфер и отправки нотиса о завершении процедуры
mm=`yandex-disk publish %f`;echo -n $mm | xclip -sel clip;notify-send $mmВыглядеть новая команда будет примерно так (иконку можно взять тут).
Для быстрого постинга скриншотов, думаю вполне подойдет Shutter (ставится из репозиториев). Его можно настроить для сохранения скриншотов сразу в папке Я.Диск-а, настроить качество и формат скриншотов. В нем же есть небольшой графический редактор который позволяет кропать изображения, рисовать рамки-стрелки и т.д. Правда чтобы активировать редактор в Shutter нужно поставить ещё кое-что (по состоянию на сегодня это всё ещё требуется, странно что не ставится всё сразу).
sudo apt-get install libgoo-canvas-perl gnome-web-photoКак установить Shutter дефолтным инструментом в XFCE можно почитать например тут. Кажется это всё. Закончили упражнение.
Для того, чтобы не ползать править постоянно /etc/hosts при каждом заведении нового проекта на локалке хорошо бы заставить машину ломится по определенному домену на локальную машину всегда. Я как-то уже писал на эту тему, но решение там мягко говоря не самое простое. Я тут и там слышал про dnsmasq но как-то все не доходили руки разобраться. В общем, это совсем-совсем просто.
Жаль я забыл что у меня там с brew сломалось, но фикс нагуглился минут за 20, ничего серьезного.
В этом примере будет достаточно просто размещать проекты на диске вот так
/home/luke/projects/php/project-one/public -> http://project-one.my.dev
/home/luke/projects/php/project-two/public -> http://project-two.my.dev
/home/luke/projects/php/project-three/public -> http://project-three.my.dev
/home/luke/projects/php/project-four/public -> http://project-four.my.dev
- sudo apt-get install dnsmasq (ну или brew install dnsmasq, кстати с brew была какая-то проблема небольшая, сейчас не вспомню на ходу)
- Идем открываем редактором файл конфигурации /etc/dnsmasq.conf (внутри конфига все расписано, но все опции закоменчены; в случае с brew конфиг лежит /usr/local/etc/dnsmasq.conf)
- Добавляем (или ищем и раскоментируем+правим то что уже есть в конфиге) две строки
address=/.dev/127.0.0.1 # прибиваем гвоздями домен к ip listen-address=127.0.0.1 # слушать будем на этом ип
Создаем папку (если нет)sudo mkdir /etc/resolver
Создаем такой файлик под зонуsudo bash -c 'echo "nameserver 127.0.0.1" > /etc/resolver/dev'
Теперь все хосты вида *.dev будут завернуты на 127.0.0.1
Любопытные граждане гуглят и читают комментарии в конфиг файле. - Последний штрих, идем в свойства текущего сетевого соединения и в его свойствах указываем дополнительный DNS как свой локальный 127.0.0.1 (в формах настройки есть разница, но я думаю это просто и пояснения не нужны)
- И совсем последний штрих - перезапускаем dnsmasq
sudo service dnsmasq restart
Как это делается на маке я не помню, нужно поглядеть brew info dnsmasq
Жаль я забыл что у меня там с brew сломалось, но фикс нагуглился минут за 20, ничего серьезного.
P.S.:
А если ещё в nginx добавить что-то видаserver { server_name ~^(.*)\.my\.dev$; set $projectFolder $1; root /home/luke/projects/php/$projectFolder/public; index index.php; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { # With php5-fpm: fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }то ещё и в конфиги сервера можно будет ползать значительно реже.
В этом примере будет достаточно просто размещать проекты на диске вот так
/home/luke/projects/php/project-one/public -> http://project-one.my.dev
/home/luke/projects/php/project-two/public -> http://project-two.my.dev
/home/luke/projects/php/project-three/public -> http://project-three.my.dev
/home/luke/projects/php/project-four/public -> http://project-four.my.dev
На самом деле эта заметка почти никакого отношения к node.js не имеет, сам по себе такой перезапуск может быть чего угодно и вообще есть другие варианты, но я как совсем ленивый гражданин не мог не воспользоваться такой халявой.
Суть такая: есть приложение которое должно автоматом взлетать после перезагрузки и поскольку в некоторых случаях (весьма неприятных) проконтролировать перезагрузку невозможно, надо прописать это приложение где-то на автозапуск. Использовать для этой цели (оказывается!) можно тот самый crontab. Я вожусь с линуксом уже лет 6-7 и понятия не имел о такой замечательной возможности. Есть два момента
Суть такая: есть приложение которое должно автоматом взлетать после перезагрузки и поскольку в некоторых случаях (весьма неприятных) проконтролировать перезагрузку невозможно, надо прописать это приложение где-то на автозапуск. Использовать для этой цели (оказывается!) можно тот самый crontab. Я вожусь с линуксом уже лет 6-7 и понятия не имел о такой замечательной возможности. Есть два момента
- Нужно выбрать cron того пользователя от которого должно заработать ваше приложение
- Нужно воспользоваться простой как двери в милиции инструкцией @reboot
crontab -e -u user_loginТеперь добавляем наше распоряжение на действия после перезагрузки, например так
@reboot sleep 20; /home/user_login/restart-app.shВ примере через 20 секунд после перезагрузки будет запущен выбранный скрипт. И вся любовь. Задержка взята по причине того, что какие-то сервисы у меня не стартовали до запуска искомого приложения и оно валилось не находя нужной для себя фигни. С такой задержкой все взлетает на ура.
Как создать загрузочную флешку с linux под macos
March 22, 2014
В общем это практически так же как и в linux
1. Втыкаем флешку и смотрим из консоли diskutil list
Вот так это выглядит у меня на машине
После этого флешка будет видна в через diskutil list но в файндере отключится.
3. Записываем образ на флешку sudo dd if=my-linux-distr.iso of=/dev/disk1 (понятно что вместо образа можно пихать путь к файлу на диске)
4. Ждем завершения записи
diskutil eject /dev/disk1
5. Profit!
1. Втыкаем флешку и смотрим из консоли diskutil list
Вот так это выглядит у меня на машине
$ diskutil list /dev/disk0 #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *500.1 GB disk0 1: EFI EFI 209.7 MB disk0s1 2: Apple_HFS Macintosh HD 499.2 GB disk0s2 3: Apple_Boot Recovery HD 650.0 MB disk0s3 /dev/disk1 #: TYPE NAME SIZE IDENTIFIER 0: CDROM *4.0 GB disk12. Размонтируем флешку diskutil unmountDisk /dev/disk1
После этого флешка будет видна в через diskutil list но в файндере отключится.
3. Записываем образ на флешку sudo dd if=my-linux-distr.iso of=/dev/disk1 (понятно что вместо образа можно пихать путь к файлу на диске)
4. Ждем завершения записи
$ sudo dd if=archlinux-2014.03.01-dual.iso of=/dev/disk1 Password: 1079296+0 records in 1079296+0 records out 552599552 bytes transferred in 472.350022 secs (1169894 bytes/sec)Теперь если macos не предложила извлечь флешку автоматически - делаем это вручную
diskutil eject /dev/disk1
5. Profit!