Linux: работа с числами (bc, dc, expr)

http://www.basicallytech.com/blog/?/archives/23-command-line-calculations-using-bc.html  – примеры расчета простых выражений с помощью bc.

expr и let – базовые целочисленные калькуляторы. Поддерживают операции сложения/деления/умножения/вычитания.

EXPR
$ expr 6 + 2
8

$ expr 6 - 2
4

$ expr 6 \* 2
12

$ expr 6 / 2
3

$ expr 6 / 5
1

LET
let "b = $a * 2"
let "b = $a - 2"

bc (basic calculator) — интерактивный интерпретатор Си-подобного языка, позволяет выполнять вычисления с произвольно заданной точностью.

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

Linux: использование screen

Хорошая шапаргалка

screen в основном используют для создания нескольких сессий и быстрого переключения между ними (по сути аналог tab’ов в secureCRT).

Кроме того у сессий screen есть существенное преимущество по сравнению с “обычными” ssh-сессиями –  независимость от активности ssh-сессии (по причине отключения хоста/проблем в сети между сервером и хостом/етк).

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

Работа с утилитой join, ошибка join is not sorted (данные файла не отсортированы)

Join – полезная утилита для объединения нескольких текстовых файлов по какому-то общему идентификатору. Название намекает на аналогию с функцией join в SQL.

~$ cat >1
asd 1
bsd 2
csd 3
~$ cat >2
asd test
bsd testtest
csd testtesttest

~$ join 1 2
asd 1 test
bsd 2 testtest
csd 3 testtesttest
Delimeter

join -t”;” – задаем разделитель для csv.

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

xargs: простая многопоточность в bash

Простая многопоточность в bash: делаем скрипт для одной сети/одного IP (с любым из скнов представленных ниже, например), далее делаем список сетей/IP, открываем его через cat и натравляем скрипт через xargs.

cat nets | xargs -n 1 -I ^ -P 10 bin/test ^

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

Cron

Общее

  • Крутой мануал на русском по настройке CronTab, большая часть ин-ии оттуда
  • Wiki помимо теории есть пример настройки
  • Даже приложения типа cacti используют cron для своей работы (переодический запуск опросчика и рисователя)
Из установки Cacti:
9) Создаём задание в кроне
crontab -e
*/5 * * * * php /var/www/cacti/poller.php


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

Fail Cron test -x /etc/init.d/sendmail

При работе с почтой сталкивался с сыпящимися ошибками cron из-за теста sendmail. Судя по форумам трабла с конфликтом разных средств отправки сообщений и из-за того, что при установке второго средства, sendmail продолжает полу-работать. Методов решения несколько (см. ссылки), самым простым (и никак в последствии не повлиявшим на что либо) мне показалось просто закоменчивание проблемной строки в конфиге PROCMAIL для SENDMAIL.

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

select-editor, cron

В Ubuntu есть удобная утилита – select-editor. При первом запуске cron она предлагает выбрать редактор, для редактирования конфигурационного файла cron. По умолчанию используется nano и я раньше использовал только его, пока не привык к vim. Изменить выбор можно запустив утилиту select-editor из консоли.

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

Linux: работа с текстом (sed, awk, tr, cat, grep)

SED

Удаляем первую/первую + пятую строки

sed 1d <file>
sed '1d;5d' <file>

Удаление пустых строк (Sed delete empty lines)

sed '/^ *$/d' sw # базовый вариант
sed '/^[[:space:]]*$/d' # любой whitespace как пустое место
sed -r '/^\s*$/d'
Показать в файле все, что выше match.


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

Linux: инструменты компрессии и архивации (zip/gzip/bzip, tar/7zip)

Задачи архивации и сжатия делаются зачастую вместе для создания ужатых архивов ряда файлов.
Создание таких ужатых архивов имеет два основных плюса: сохранение объема на носителе и более быстрое копирование на удаленную систему.
Так же есть дополнительные плюсы, например: возможность задания пароля на архив, разбиение архива на небольшие по размеру файлы (даже меньшего объема в сравнении с исходным файлом).


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

Vim теория и практика использования

About
  • Если на сервере нет vim (есть только vi), возможно есть vim.tiny (на примере Debian).
vim.tiny /etc/network/interfaces
  • Vi/vim из коробки, в отличии от vim.tiny зачастую (не всегда) не позволяет вставлять текст из gui, что крайне неудобно. В таком случае можно использовать команду :set paste и после нее вставлять.


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