УтилитыАдминистратора
Версия от 11:45, 5 августа 2008; MikhailGusarov (обсуждение | вклад)
~/bin/where
#!/bin/sh # Dimitry Ketov <dketov@avalon.ru> usage() { echo "Usage: `basename $0` command" exit 1 } command=$1 [ -z "$command" ] && usage commandpath=`which $command 2>/dev/null` [ -n "$commandpath" ] && rpm -qif "$commandpath"
См. control(8) ~/bin/showcontrol
#!/bin/sh # Dimitry Ketov <dketov@avalon.ru> usage() { echo "Usage: `basename $0` FACILITY" echo "see also: control(8)" exit 1 } facility=$1 [ -z "$facility" ] && usage control-dump $facility 2>/dev/null for status in `control $facility list 2>/dev/null` do control $facility $status echo $status: $(ls -l $(which $facility)) done control-restore $facility 2>/dev/null
~/bin/check-orphaned-dir.sh
#!/bin/sh # Tests dirs from current directory for # orphaned dirs # Vitaly Lipatov <lav@etersoft.ru>, 2004 # # # Программа работает с текущим или с указанным # в первом параметре каталоге. # Формируется отчёт о каталогах, непосредственно # расположенных в рабочем каталоге и не принадлежащем # ни одному из установленных пакетов. # ВНИМАНИЕ! При запуске под root скрипт также # удаляет пустые каталоги, которые не принадлежат # никаким пакетам. # Принятые меры безопасности: # - удаление только по списку каталогов, не более 5 в списке # - каталоги удаляются с помощью rmdir # - скрипт не работает из корневого каталога # Delete an empty dirs if have root permission remove_empty_dirs() { RES=`find "$1" ! -type d | wc -l` if [ $RES = "0" ] then echo "! ! Empty_unusable_dir:_$1" if [ "$UID" = "0" ] then LIST=`find "$1" -type d | tac` if [ "$RES" -lt "5" ] then rmdir $LIST echo "DONE" else echo "Warning!!! I may not destroy dirs with this long list: $LIST" fi fi fi } ### main block if [ "$1" == "--check-dir" ] then rpm -qf "$2" >/dev/null || remove_empty_dirs "$2" elif [ "$1" == "--convert-report" ] then sort | cut -d " " -f 3 else PARAM="$1" test -z "$PARAM" && PARAM=`pwd` # Check if [ `echo $PARAM | wc -c` -lt "4" ] then echo "Warning!!! I may not work with such root dirs as $PARAM" exit 1 fi echo "Report for dir $PARAM:" find $PARAM -maxdepth 1 -type d -exec $0 --check-dir '{}' \; 2>&1 | $0 --convert-report fi exit 0
Моя версия поиска лишних библиотек ~/bin/cleanlib
#!/bin/sh # Dimitry Ketov <dketov@avalon.ru> for libpkg in `rpm -qa --queryformat '%{name}\n' | grep ^lib` do if libs=`rpm -ql $libpkg | grep 'lib/lib.*\.so'` then rpm -q --whatrequires $libpkg >/dev/null 2>&1 || for lib in $libs do rpm -q --whatrequires `basename $lib` >/dev/null 2>&1 && break done || echo $libpkg fi done