|
||||||
|
новое!
собираю для себя и для других: команды и скрипты на bash |
шаблон документа word для различной документации |
Моя биография в компьютерах и технологиях |
О распознавании образов |
новое! О юзабилити |
![]() |
|
|||
![]() |
| |||
![]() |
Я тут составляю потихоньку маленький справочник по bash, часто удобно автоматизировать некоторые операции за счет небольших скриптиков или команд.
Полезности для работающих в командной строке *nix #find . -maxdepth 1 -type d -exec du -sk {} \; | sort -rn или подлинее #find . -maxdepth 1 -type d -print | xargs du -sh | sort -rn Команда, предназначенная для вывода всех поддиректорий с размерами #:>file То же, что и #cat /dev/null > file Обнуление файла #egrep -v "^#|^[:blank:]*$" file или, проще #egrep -v "^#|^$" file Просмотр файла без комментариев и пустых строк. Особенно удобно для просмотра конфигов. #for x in *; do mv "$x" `echo $x | sed -e 's/ /_/g'`; done удаление пропусков в именах файлов и директорий и подстановка нижней черты ,,_,, в определенном каталоге замена пробелов в именах файлов и каталогов на символ подчеркивания #for x in *; do OLDFILE=$x; NEWFILE=`echo $x | perl -i -npe "s/БЫЛО/СТАЛО/ig";`;echo $OLDFILE to $NEWFILE; done переименование файлов в директории по правилу, указыаемому в регулярном выражении. Вместо БЫЛО и СТАЛО нужно поставить правила регулярных выражений, а вместо echo - когда убедитесь, что делает что надо, поставить mv, "to" убрать совсем - в mv он, конечно, не нужен. Я тут набросал скриптик, позволяющий понять, падает скрипт из-за нехватки памяти или чего-то еще. работает он так: запускаем в одной сессии #./memusage.sh <имя php-script-a> & php <имя того же скрипта> Например: #./memusage.sh con_index.php & php con_index.php Смотреть надо на колонку "free" Пример: # ./memusage.sh con_index.php & [1] 3766 initial state: procs -----------memory---------- ---swap-- -----io---- --system- r b swpd free buff cache si so bi bo in cs 0 0 0 246968 179616 214024 0 0 0 2 8 5 please, run script con_index.php at next ssh session listening script con_index.php... [root@srv product_import]# php con_index.php r b swpd free buff cache si so bi bo in cs us 1 0 0 212928 179636 214004 0 0 0 2 8 5 0 r b swpd free buff cache si so bi bo in cs us 2 0 0 205500 179636 214004 0 0 0 2 8 5 0 r b swpd free buff cache si so bi bo in cs us 2 0 0 195880 179636 214004 0 0 0 2 8 5 0 ... r b swpd free buff cache si so bi bo in cs us 2 0 0 39456 179624 191916 0 0 0 2 8 5 0 r b swpd free buff cache si so bi bo in cs us 1 0 0 40620 179624 191916 0 0 0 2 8 5 0 r b swpd free buff cache si so bi bo in cs us 1 0 0 39788 179624 191916 0 0 0 2 8 5 0Тут видно, что память резко уменьшается с 246Mb до 40Mb. вот собственно, сам скрипт: #!/bin/bash if test "$1" == ""; then echo "script memory usage dumper"; echo "Usage: memusage.sh while [ -e "$1" ] do NEW=`date -r "$1" +%Y-%m-%d_%Hh%M` echo "$1 -> "$NEW"_"$1 # mv "$1" $NEW"_$1" shift done Скриптик, добавляющий в начало имен файлов, перечисленных в комадной строке дату и время. Нужно раскомментировать mv, чтобы он реально переименовывал. Можно модифицировать так, чтобы только дата, например, прибавлялась и не в начало, а в конец. |
|
|