Я пользуюсь Slackware, в котором до минимума сведены утилиты с графическим интерфейсом. Откровенно говоря, иксы я тоже не столь часто гружу. Однако, во времена, когда я сидел на Убунте, мне понравился Network Manager, который висел в трее и индицировал работу сетевых интерфейсов. Впрочем, важно было другое — в нем можно было создавать «конфигурации» сетевых настроек и между ними переключаться (по типу «работа», «дом», «кафе»). В Slackware у меня был под рукой только netconfig на базе ncurses, который тупо переписывал некоторые файлы. Многократно запуская его в разных местах я получал не тот эффект, который бы хотел — настройки из предыдущего места стирались. Тогда я решил написать простенький скрипт, позволяющий «переключать» настройки в стиле Network Manager. Сделал я это грубо, не исключаю, что есть более тонкое решение, но он работает и в какой-то мере универсален.
Публикую его ниже, если кому-то будет полезен:
Пользоваться им очень просто. Он перебрасывает линки на файлы, в которых хранится фактическая конфигурация. Я отслеживаю только /etc/rc.d/rc.inet1.conf и /etc/resolv.conf. В этом случае, они уже будут не файлами, а линками на /etc/rc.d/rc.inet1.conf.location и /etc/resolv.conf.location. Я их создаю вручную, потом делаю switch_net, потом netconfig, когда прихожу на «новое место». Чтобы переключиться с одного на другое достаточно с правами суперпользователя выполнить switch_net:
Публикую его ниже, если кому-то будет полезен:
- #!/bin/bash
- # Файлы, которые контролирует скрипт
- FILES="/etc/rc.d/rc.inet1.conf /etc/resolv.conf"
- print_help () {
- echo To use print
- echo
- echo switch_net.sh location
- echo
- for file in $FILES; do
- echo File $file under control
- done
- }
- if [ -z $1 ];
- then
- print_help
- exit
- fi
- for file in $FILES; do
- if [ ! -f $file.$1 ]; then
- echo File $file.$1 not exists, please point to existing one
- exit
- fi
- done
- for file in $FILES; do
- ln -sfv $file.$1 $file
- done
- echo Restarting inet
- /etc/rc.d/rc.inet1 restart
Пользоваться им очень просто. Он перебрасывает линки на файлы, в которых хранится фактическая конфигурация. Я отслеживаю только /etc/rc.d/rc.inet1.conf и /etc/resolv.conf. В этом случае, они уже будут не файлами, а линками на /etc/rc.d/rc.inet1.conf.location и /etc/resolv.conf.location. Я их создаю вручную, потом делаю switch_net, потом netconfig, когда прихожу на «новое место». Чтобы переключиться с одного на другое достаточно с правами суперпользователя выполнить switch_net:
bash-4.1$ sudo switch_net home
Password:
«/etc/rc.d/rc.inet1.conf» -> «/etc/rc.d/rc.inet1.conf.home»
«/etc/resolv.conf» -> «/etc/resolv.conf.home»
Restarting inet