УтилитыАдминистратора

Материал из ALT Linux Wiki
48px-Mail-mark-junk red.svg.png
Эта статья конкретно протухла.
Статья уже не подходит под современные реалии, под современные версии Альта или сломана совсем. Возможно, её уже не доработать и не поместить в архив.


Freesource-logo.png Blue Glass Arrow.svg MediaWiki logo.png
Эта страница была перемещена с freesource.info.
Эта страница наверняка требует чистки и улучшения — смело правьте разметку и ссылки.
Просьба по окончанию убрать этот шаблон со страницы.


~/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