Ruby: работа с ФС (файлами и папками)

ФАЙЛЫ

дока

Прежде всего нужно обозначить, что закрытие файла крайне необходимый процесс:
1) открытый файл может быть заблокирован файловой системой для других скриптов
2) при открытии создается file descriptor, их количество ограничено файловой системой, хотя и обычно значение ограничения довольно большое
3) могут произойти race conditions, когда несколько процессов пытаются прочитать/записать один и тот же ресурс (в данном случае файл) в один момент времени

Чтение и вывод

# вывод контента (первой строки)
File.open("test.txt")


Читать дальше

Oracle DB: разное

Установка сервера на Windows

Oracle Database 11g Express Edition – с сервером идет сразу WEB интерфейс встроенный для управления БД. Качнуть можно бесплатно с сайта Oracle.

Файлы/папки

C:\oraclexe\app\oracle\product\11.2.0\server – основная папка сервера

C:\oraclexe\app\oracle\product\11.2.0\server\bin – тут утилиты oracle, например:

  • sqlplus.exe – Sql plus CLI, по умолчанию через ярлык запускается с опцией /nolog (sqlplus.exe


Читать дальше

Ruby: работа с датой и временем

TIME

Класс Time

Получить hours:minutes (h:m) из Time.now можно по разному

1) лучший и самый универсальный способ через strftime

h_m = Time.now.strftime("%H:%M") # можно выцепить все что угодно, не только h:m, формат %d/%m/%Y %H:%M

2) хуже

h_m = "#{Time.now.hour}:#{Time.now.min}"

3) плохой

time_and_date = "#{Time.now}".split("


Читать дальше

Автоматизация

  • (devnet, автоматизация) Опрос на habr.
Как Вы управляете конфигурацией?
33.61% Ручное редактирование конфигурационных файлов - 40
31.93% GitOps - 38
20.17% Web UI - 24
14.29% другое - 17
Проголосовали 119 пользователей. Воздержались 22 пользователя.

Автоматизация – замена ручной работы программой на основе алгоритма.

Читать дальше

Ruby: работаем с базой mysql

Как показала недолгая практика использования gem mysql, лучше его не использовать вообще, а сразу использовать gem mysql2.

gem mysql не развивается (последний апдейт в 2013) и имеет косяки, например, с кодировкой (кириллица кладется в cp1251 и изменить, насколько я понял, никак).

Читать дальше

Ruby: удаляем спец. символы перед insert в базу

Метод на ruby по удалению мусора в виде разных скобок, exclamation и других символов, которые гарантированно приведут к ошибке при insert в базу. При необходимости можно добавить символы в переменную pattern.

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ....


Читать дальше

Cisco reverse telnet через async порты (aux/db68)

Ссыли 0 1  2

Очень удобная тема, хотя и старая как жигули. Соединяешь новую железку (напр. BRAS) с аплинковой через AUX+консоль или DB68+CAB-OCTAL-ASYNC. Чуть настраиваешь line’ы (пример ниже для DB68 или выше в ссылках).  Далее можно с любого места, с которого доступна аплинковая Cisco (причем по любому из ее IP адресов, не только Lo0) зайти на ненастроенный или, божи-божи, упавший по data портам девайс поконсоль через telnet.

Читать дальше

Видеонаблюдение/видеоконференции/аудио/медиа: IP/WEB камеры, видео-контроллеры, RTSP viewer, запись видео с экрана, BigBlueButton, dante, smpte 2110, teamspeak

  • Частый вопрос – организация доступа к камерам без внешнего IP у роутера, за которым находятся камеры, решения в порядке моего приоритета:
    • VPN на шлюз с внешним сервером IP и маршрутизация внутри VPN – безопасно и достаточно просто при наличии внешнего VPN сервера
    • Облачный или не совсем контроллер (DVR) – cloud access ivideon, unify или другой, зачастую за $
    • DYNDNS (при необходимости с пробросом портов для нескольких камер)
    • Все таки покупка внешнего IP.


Читать дальше

Демонизация приложений, делаем демон приложения systemd в CentOS (Debian), работа с сервисами (sysvinit, systemctl)

  • systemctl (system control) без запущенных аргументов выдает список systemd объектов/UNIT (mount, target, service, socket, timers, etc) запущенных в системе. с флагом —type <UNIT> можно отфильтровать конкретные объекты.
# systemctl
UNIT LOAD ACTIVE SUB DESCRIPTION 
proc-sys-fs-binfmt_misc.automount loaded active waiting Arbitrary Executable File Formats File System Automount Point 
sys-devices-pci0000:00-0000:00:07.1-ata2-host1-target1:0:0-1:0:0:0-block-sr0.device


Читать дальше

Поднимаем TFTP сервер на CentOS 7

Пошаговый гайд

0) Отключаем SELinux если раньше это не сделали и перезагружаем сервер (если уверены что он нам не нужен или не умеем с ним работать). Если без отключения для заливки файлов должна помочь строка setsebool -P tftp_anon_write 1

sudo vi /etc/selinux/config
SELINUX=disabled

1) Загружаем сервер, клиент и xinetd (без него никак, через него работает tftpd)

sudo yum install tftp tftp-server xinetd

2) Редактируем файл с конфигурацией /etc/xinetd.d/tftp.

Читать дальше