вынесение путей в конфиг

~AsmodeuS~
Site Admin
Сообщения: 5746
Зарегистрирован: Пт янв 28, 2005 3:11 pm
Контактная информация:

Сообщение ~AsmodeuS~ »

будем выносить

Abram
Сообщения: 157
Зарегистрирован: Чт мар 26, 2009 11:31 am
Контактная информация:

Сообщение Abram »

Код: Выделить всё

#!/bin/sh

list='/bin/sh
/bin/bash
/usr/local/bin/somefuckingscarybinary
/usr/local/bin/sh' # Enter the list of files that ABiLLS wants
for file in $list
do
        if [ -f $file ]; then
                echo "OK: $file"
        else
                name=`basename $file`
                if [ `which $name` ]; then
                        newfile=`which $name | tail --lines=+1`
                        echo "Found alternative for $file at $newfile"
                        # I know that is tricky; But I'm too lazy to do better
                        mkdir -p $file
                        rmdir $file
                        ln -s $newfile $file
                else
                        echo "ERROR: No alternative for $file found!"
                fi
        fi
done
Писалось на скорую руку, даже ошибки в вывод лезут :). Запустить два раза, после второго должно быть всё OK.

ran
Сообщения: 2298
Зарегистрирован: Вс окт 21, 2007 2:29 pm

Сообщение ran »

ыыы... скрипт-та не проблема... проблема в этом:
Enter the list of files that ABiLLS wants
:D
Любой тупик - это тщательно замаскированный выход.

Abram
Сообщения: 157
Зарегистрирован: Чт мар 26, 2009 11:31 am
Контактная информация:

Сообщение Abram »

Таксь. Начинаю собирать список.
На всякий случай пихаю даже то, что в 99% случаев должно лежать на своём месте, а также дублирующиеся записи (как mysqldump, например; sudo же, например, встречается дважды в двух разных местах) и записи из дефолтного конфига.

Код: Выделить всё

/usr/bin/perl
/usr/bin/tail
/usr/bin/ssh
/usr/bin/scp
/usr/local/bin/sudo
/sbin/route
/usr/bin/grep
/usr/bin/awk
/usr/sbin/sendmail
/usr/local/bin/snmpwalk
/usr/local/bin/snmpset
/usr/bin/gzip
/usr/bin/tar
/usr/local/bin/mysqldump
/usr/local/mysql/bin/mysqldump
/usr/bin/rsh
/bin/echo
/usr/local/bin/radclient
/usr/bin/sudo
/sbin/vconfig
/sbin/ifconfig
/usr/libexec/pppoed
/usr/local/bin/curl
/usr/local/bin/flow-cat
/usr/local/bin/flow-print
/usr/local/bin/ipcad
/usr/local/bin/trafsave
/usr/local/bin/traflog
/usr/bin/uname
/usr/bin/netstat
/usr/sbin/pppctl
/usr/local/bin/sudo
/bin/sleep
/usr/sbin/ipfw
/usr/abills/misc/pppd_kill
/bin/awk
/sbin/tc
2~AsmodeuS~:
IMHO имеет смысл заменить все пути на что-то типа /usr/abills/bin/some_command, а туда уже подобным методом позапихать симлинки. Вызывать, естественно, оттуда же. Тогда уж точно будет видно, что, где и чего не хватает.

EDIT: Для работы шейпера в моей конфигурации нужны awk и tc. awk вообще лежит в /usr/bin/awk, а в скрипте на вики вызывается из /bin. Добавил в список.
Последний раз редактировалось Abram Вс мар 29, 2009 2:48 am, всего редактировалось 3 раза.

Abram
Сообщения: 157
Зарегистрирован: Чт мар 26, 2009 11:31 am
Контактная информация:

Сообщение Abram »

Да, и в догонку: у меня на Debian Lenny с этим скриптом и этим списком получилось так:
OK: /usr/bin/perl
OK: /usr/bin/tail
OK: /usr/bin/ssh
OK: /usr/bin/scp
Found alternative for /usr/local/bin/sudo at /usr/bin/sudo
OK: /sbin/route
Found alternative for /usr/bin/grep at /bin/grep
OK: /usr/bin/awk
OK: /usr/sbin/sendmail
Found alternative for /usr/local/bin/snmpwalk at /usr/bin/snmpwalk
Found alternative for /usr/local/bin/snmpset at /usr/bin/snmpset
Found alternative for /usr/bin/gzip at /bin/gzip
Found alternative for /usr/bin/tar at /bin/tar
Found alternative for /usr/local/bin/mysqldump at /usr/bin/mysqldump
Found alternative for /usr/local/mysql/bin/mysqldump at /usr/bin/mysqldump
OK: /usr/bin/rsh
OK: /bin/echo
Found alternative for /usr/local/bin/radclient at /usr/bin/radclient
OK: /usr/bin/sudo
ERROR: No alternative for /sbin/vconfig found!
OK: /sbin/ifconfig
ERROR: No alternative for /usr/libexec/pppoed found!
ERROR: No alternative for /usr/local/bin/curl found!
ERROR: No alternative for /usr/local/bin/flow-cat found!
ERROR: No alternative for /usr/local/bin/flow-print found!
ERROR: No alternative for /usr/local/bin/ipcad found!
ERROR: No alternative for /usr/local/bin/trafsave found!
ERROR: No alternative for /usr/local/bin/traflog found!
Found alternative for /usr/bin/uname at /bin/uname
Found alternative for /usr/bin/netstat at /bin/netstat
ERROR: No alternative for /usr/sbin/pppctl found!
Found alternative for /usr/local/bin/sudo at /usr/bin/sudo
OK: /bin/sleep
ERROR: No alternative for /usr/sbin/ipfw found!
OK: /usr/abills/misc/pppd_kill

Ответить