linux

Подписаться на эту метку по RSS

Here is how you can find all files newer than a certain date, excluding directories from the search ("doc" and "misc", in my case) and printing the modified time along with the file name.

find -L . -newermt "Dec 5, 2015 22:00" -not -path './doc/*' -not -path './misc/*' -printf "%TY-%Tm-%Td %TH:%TM:%TS %Tz %p\n"  | less

This oneliner will also follow symlinks (thanks to -L option).

Если вы живете не по нулевому гринвичевскому меридиану, например в России, то ваше локальное время сдвинуто относительно всемирного координированного времени UTC. Например для Москвы это +4 часа, на момент написания этой заметки. Если время по UTC, допустим, 12:00 дня, то по Москве (MSK) это уже 16:00.

 

 

Но при наличии двух операционных систем, Windows и Linux, на одной машине часто возникают непонятные скачки времени. В обоих системах начальной точкой отсчета считается время, заданное в BIOS. Однако, если Linux считает, что время BIOS хранится в UTC зоне, то Windows полагает, что это локальное время, т.е. если даже вы задали в Windows часовой пояс +4, время будет выводится такое, какое сейчас настроено в BIOS.

читать дальше »

It would seem there is no problem to find all symbolic links within the directory recursively like find . -type l . This is exactly how I hoped to make it, but got not the result I expected.

Actually, this way we don't get those symbolic links that are located within the directories which, in its turn, are pointed by the symbolic links that are found in the directory of initial search. It is complicated enough, but I think you see the issue :)

So this is how to solve it:

1. You can use ls recursively and so that this command will follow all the symbolic links found and search new links there.

ls -lR . | grep ^l

2. Another way is to take advantage of find command, but note, firstly, there must be -l option which will allow us to follow symbolic links already found, and secondly, pay attention that I use -xtype instead of -type. This is due to the fact that:

l    symbolic link; this is never true if the -L option or the
     -follow option is in effect, unless the symbolic link  is
     broken.  If you want to search for symbolic links when -L
     is in effect, use -xtype.

(from man find )

Thus, the second solution:

find -L . -xtype l

This is my solution on how to control disk space usage on a server. The solution is a simple one-line shell script that is executed by cron and sends an e-mail alert each time your disk space gets low.

First of all, let's create a shell file.

vi /home/username/bin/check-disk-space.sh

#!/bin/sh
df -Pl|grep "^/dev"|awk '{sub("%","",$5);if($5 > 95) print $5"%%\t"$6}'|xargs -0 sh -c 'test "$1" && printf "`hostname -f` is running low on disk space:\nUse%%\tMounted on\n$1"' $0

As you can see it's simple enough. You can adjust the parameter in percent (in our case it is 95% ) on after overbrim of which you'll get an email alert like:

<hostname> is running low on disk space:
Use%	Mounted on
95%	/

At last, you must set a crontab task:

crontab -e u username

MAILTO=your-email@example.com
15 */2 * * * /home/username/bin/check-disk-space.sh

This cron task will check disk space every 2 hours.

Hope this helps you :)

Выключаем гудок (BEEP) на LMDE

Рубрика: IT. Сети. Связь
Метки:
Дата: 18/04/2013 23:14:38

LMDE LogoLMDE (Linux Mint Debian Edition) — молодой дистрибутив Linux, который сочетает в себе сразу две приятные черты: это ответвление от популярного Linux Mint — лучшего дистрибутива для домашних ПК (который в свою очередь построен на небезызвестном Ubuntu) и в то же время LMDE базируется на Debian — лучшем серверном дистрибутиве, и имеет полную совместимость с его репозиториями. Разумеется, всё субъективно.

Что же касается моего отношения к этому дистрибутиву, то я просто решил поставить его на свой ноутбук HP Pavilion g6. Что из этого вышло? Сразу три серьезных проблемы, которые надо решать:

  • глючит WiFi (сетевая карта Broadcom 4313): интернет работает урывками, а то и вовсе не работает; уровень сигнала слабый, при этом постоянно появляются окна ввода паролей, что ставит крест на работе в интернете вообще;
  • при старте — экран на минимальном уровне яркости, так что можно подумать, что и вовсе не функционирует;
  • при входе/выходе из системы раздаются противные звуки (одиночный гудок) встроенного динамика BIOS.

Да, все эти проблемы я решил.читать дальше »

Одной свербящей особенностью при знакомстве с текстовым редактором Vim являлось то, что символ табуляции, такой, к которому мы привыкли из «нормальных» редакторов, к примеру Notepad++ или консольного nano, ведёт себя совсем не должным образом. Если <TAB> поставлен в начале строки, то почему-то нельзя нажать клавишу «влево» и достигнуть начала окна редактирования. А внутри текста он ведёт себя просто вызывающе: курсор стоит не перед <TAB>ом, как положено, а не доходя одного символа до конца <TAB>а! Глумление над нами, чистой воды.

На самом деле такое поведение вполне естественно с точки зрения Vim. Символ табуляции — это один символ, поэтому в normal mode Vim помещает кусор на положенное место — над символом (или перед ним, в зависимости от настроек терминала) — чтобы его можно было удалить, заменить и просто осознать, что <TAB> — это один символ, такой же как остальные а не резиновая четырёхсимвольная махина. А то, что визуально символ табуляции занимает 2, 4, 8, или сколько сами определим, символов — это тоже так надо, иначе бы он ничем не отличался от пробела, по крайней мере для нас, зрителей.

Допустим не нравится нам такое поведение Vim. Есть два разумных способа это исправить. Первый я нашёл везде и это не совсем то, что нужно. Вам будет позволено перемещать курсор по всей плоскости экрана посимвольно (а также появятся дополнительные бонусы, связанные с выделением вертикальных блоков текста), но перепрыгивать через <TAB> разом не получится:

set virtualedit=all

Второй, который действительно похож на правду, я нашёл в архиве девелоперской переписки:

set list listchars=tab:\ \ 

Обратите внимание на пробел после второго «\». При использовании второго способа вы теряете бонусы, которые даёт опция «set invlist», если, конечно, вы ей пользуетесь.

Эти опции можно прописать, как и все остальные, в ~/.vimrc.

Для облегчения работы в bash (в других Linux-shell, скорее всего тоже получится: sh, ksh, zsh, csh, tcsh, … + консоли маршрутизаторов/коммутаторов Cisco и других фирм) работают некоторые сочетания клавиш («горячие клавиши»). Наиболее полезные из них тщательно отобраны лично мной:

Работа с процессами:
<Ctrl> + <C> — посылает сигнал SIGINT. Обычно, прерывает текущий процесс.
<Ctrl> + <D> — выход из консольного пользовательского процесса (EOF). Сигнал информирует систему, что ввод (с консоли) закончен.
<Ctrl> + <Z> — перевести процесс в фоновый режим (вернуть обратно можно набрав fg <номер процесса> в консоли; если номер не указывать — запустится последний остановленный процесс). Наберите jobs для просмотра списка всех приостановленных процессов. Очень полезная штука при работе с несколькими процессами (приложениями).
 
Работа со строкой ввода:
<Ctrl> + <W> — удалить последнее слово (всё, что слева от курсора до первого пробела).
<Ctrl> + <U> — очистить строку слева от курсора.
<Ctrl> + <K> — очистить строку справа от курсора.
<Ctrl> + <R> — поиск в истории введённых команд по маске: вводите, что хотите найти. Повторное нажатие сочетания клавиш будет искать следующее соответствие. <Ctrl> + <J> — закончить поиск и перейти к редактированию найденной команды. Если хотите просмотреть всё, что недавно вводилось в консоли, наберите history.
<Esc> + <.> — подставить аргумент из предыдущей команды. Например мы ввели >~/test.txt (создали файл в домашнем каталоге), теперь пишем vi, нажимаем <Esc> + <.> и у нас подставляется аргумент: vi ~/test.txt (выйти из текстового редактора vi можно набрав :q).
 
Перемещения по строке ввода:
Часто работают обычные «стрелочки» и клавиши <Home>, <End>, однако, на всякий случай:
<Ctrl> + <A> — переместить курсор в начало строки.
<Ctrl> + <E> — переместить курсор в конец строки.
 
Прочие действия:
<Ctrl> + <_> — отменить последнее действие.
<Ctrl> + <L> — очистить экран.
Можно выделять мышью любую подстроку, а для того, чтобы вставить её с позиции курсора, нужно нажать правую кнопку мыши <RightButton> (или среднюю, колесо — <ScrollButton>).
cd ~ (или просто cd) — перейти в домашний каталог; cd / — перейти в корневой каталог; cd - — вернуться назад (в каталог, из которого только что ушли).

Есть много других сочетаний, но именно эти стоит знать и любить. С помощью них можно сделать практически всё, и что важно, быстро.