Май 292013
 

Задача: создать случайный буквенно-цифровой пароль.

Казалось бы очень простой способ создания случайного пароля — это «постучать» по клавиатуре, но в действительности руки тянутся к середине клавиатуры, чтоб не попадать по спецклавишам. Криптостойкость такого пароля падает. Сегодня подобрал такой вариант решения, просто и удобно, но, возможно, не быстро.

head -c100 /dev/random | tr -dc 'a-zA-Z0-9' | head -c10 && echo

Теперь подробнее.

head -c100 выводит первые 100 байт из /dev/random
/dev/random имеет высокий уровень энтропии, т.к. его заполнение основывается на шумах системы, в основном от драйверов. Например, драйвер мыши.
Но если работать удаленно по SSH, то наполнение буфера случайных чисел может быть крайне медленным. Работая локально можно ускорить процесс начав двигать мышкой или нажимая клавиши.
Удаленно я запускал emerge —sync, что тоже пополняло буфер случайных чисел.
/dev/random — может работать медленнее, чем /dev/urandom так как первый выводи случайные последовательности, а второй псевдослучайные.

tr -dc ‘a-zA-z0-9’ отбрасывает все символы не попадающие в диапазон цифр или строчных/прописных английских букв.
head -c10 выводит из всех символов в потоке только 10 первых.
&& echo а это только для перевода строки, чтоб было удобнее просматривать результат.

Дек 152012
 

Задача: поменять для всех директорий и файлов владельца и группу.

Раньше я это делал более сложной командой. Сегодня научился так.

find . | xargs chown apache:apache

просто и удобно. )

xargs передает полученные значения по конвейеру указанной команде. (в данном случае)
До этого выполнял вот так.

find . -exec chown apache:apache {} \;

В новом варианте проще запомнить.
Но самое главное вот в этом.

server wordpress $ time find . -exec chown apache:apache {} \;
real    0m1.682s
user    0m0.029s
sys     0m0.148s

server wordpress $ time find . | xargs chown apache:apache
real    0m0.016s
user    0m0.002s
sys     0m0.014s

100x прирост производительности!