![]() |
скриптуем в shell
Вот это собственно и вопрос..
Я подметил что iptables после перезапуска надо заного прописывать, а перезагружаюсь я часто;)) Как же мне эти вечно вводимые три строчки: iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu echo 1 > /proc/sys/net/ipv4/ip_forward правильно прописать в файл( назовём его "forward"), да так, чтобы потом просто набрав $ forward выполнялись именно эти три стррочки тоесь как писать скрипты в bash? P.S. пробовал просто запихать в файл, не вышло... Файл создавал с vi $ vi forward Для вас профи вопрос то легчайший ;)) спасибо! :beer: :yees: |
файл такой:
1. chmod 755 forward 2: ---------------- #!/bin/bash iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu echo 1 > /proc/sys/net/ipv4/ip_forward --------------------------------------------------- |
Странно только что попробовал..
в своем root каталоге это сделал файл назвал forwarding cmod на него сделал теперь он -rwxr-xr-x и в файле #!/bin/bash рописал.. но не хочет выполнятся говорит bash: forwarding: command not found сорри всё работает вроде разобрался.. он просто работает немного не так.. надо прописывать полный путь хотя я в том коталоге и находился он всёравно не выполнялся.. а теперь ок.. спасибо... лови "одобрение" |
а... у тебя в path '.' не прописана:
попробуй: >./forwarding и можеш добавить "." в path: export PATH=${PATH}:. |
ок спасибо! сделаю
добавлю туда точку.. а что твоя строчка export PATH=${PATH}:. делает? и куда её? Я добавил в файл " etc/profile теперь там Path так выглядит: PATH="/usr/localbin/: ..blabla.. :/usr/gaemes:." обрати внимание в конце точка, ты так имел в виду? |
ага, так и имел ввиду.
http://imho.ws/images/smilies2/thumbsup.gif |
На самом деле лучшим вариантом будет назвать файл rc.forward и положить его в /etc/rc.d/ (конфигурация для RH и ей подобных), тогда файл будет запускаться при загрузке системы.
Если решите запускать систему без этого файла, то всё, что будете добавлять в правила iptables желательно сохранять при помощи iptables-save, тогда их система при запуске будет восстанавливать. |
Образоватись теперь вопросы ;))
1. Тоесть все файлы в каталоге /etc/rc.d/ которые могут выполнятся.. будут выполнятся.. должны они обязательно начинатся с rc.? 2. посмотрел я в свой /etc/ там у меня нет каталога rc но зато есть rc.boot (он пустой) и rc0.d , rc1.d .. до rc6.d и ещё rcS.d Я так понимаю rc1.d по rc6.d связаны с командой init.. или как? но тогда что жеделают rc.boot и rcS.d ? куда мне писать мой файл.. 3. iptables-save действует так что запоминает текущие настройки? |
shuron
1. Файлы в каталоге /etc/rc.d могут выполняться. А вот должны ли ?.... это зависит от уровня загрузки. а названия у них может быть любым. 2. rc0.d ... rc6.d это каталоги в которых лежат символические ссылки на программы размещенные в rc.d (хотя они могут быть и в другом месте) Но правило названия этих сим. ссылок строго регламентировано. Если они начинаются на S - то программа загружается (запускается), если на K - выгружается (stop). Цыфры после букв обозначают приоретет загрузки. 3. Да А что у тебя за дистрибутив? |
У меня debian.
Да я уже немного поразбирался.. rc.d все там так как ты сказал и скрипты интресные.. надо ещё бы в свободное время попробовать написать свой Дайте пожалуйста ссылочки где про скрипты на bash хорошо написано!! санкс |
Вложений: 1
shuron
Цитата:
|
|
Цитата:
|
filonovd
rc.d это стандартный каталог. в шапке просто симлинк для init.d сделан |
ой, и правда симлинк... в /etc/rc.d/init.d
То есть скрипты прямо в /etc/rc.d не кладутся. Чего не скажешь про слаку. :) |
с этим я уже тоже разобрался.. ;)
|
народ, помогите, туплю второй день.
дано - лог вида: Код:
xxx.xxx.xxx.13: 12.2 Mзадача: средствами sh привести вторую колонку к общему знаменателю, байтам. тоесть те значения, после которых стоит "M" заменить на цифирное_значение*1048576 чтоб получилось так: Код:
xxx.xxx.xxx.13: 12792627.2 |
#!/bin/bash
while read i; do i=$(echo $i | tr -s ' ') ud_ip=$(echo $i | cut -d ' ' -f 1 | tr -d ':') ud_ta=$(echo $i | cut -d ' ' -f 2) ud_tu=""; [ "$ud_ta" = "$(echo $ud_ta | tr -d ';')" ] && ud_tu=$(echo $i | cut -d ' ' -f 3 | tr A-Za-z a-za-z | tr -d ';') ud_ta=$(echo $ud_ta | tr -d ';') # Convert units [ "$ud_tu" = "m" ] && ud_ta=$(echo $ud_ta*1024|bc) [ "$ud_tu" = "g" ] && ud_ta=$(echo $ud_ta*1024^2|bc) echo $ud_ip $ud_ta done < <(cat records) |
cat LOG | awk '{if( $3 eq 'M'){print $2*1024*1024} else {print $2}}'
|
Цитата:
Код:
awk '{if( $3 eq 'M'){print $1 "\t" $2*1024*1024} else {print $1 "\t" $2}}Хэлловский вариант еще невкурил :cool: |
Цитата:
Код:
awk '{ printf "%s\t %.10g\n", $1, ($3 eq 'M' ? gensub("\\.", ",", "", $2)*1024*1024 : $2); }' LOG |
может и поздно, но мой скрипт делает все, что указано в тех задании :)
Код:
#! /usr/bin/awk -fКод:
if (NF < 2) nextпроверено на www# uname -a FreeBSD www.home 6.2-RELEASE FreeBSD 6.2-RELEASE #0: Fri Jan 12 11:05:30 UTC 2007 root@dessler.cse.buffalo.edu:/usr/obj/usr/src/sys/SMP i386 www# |
Вложений: 1
Итак, вопрос знатокам. Есть машина на 4-м debian с двумя интерфейсами, которая в силу сложившихся обстоятельств выполняет роль шлюза и файлсервера. Есть демон ipcad, который считает весь проходящий трафик и кладёт его в файл ipcad.dump. У меня есть простенький скрипт traff.acc4, который обрабатывает файл дампа и выдаёт файл типа febstat. Мне кажется тут ещё трафик самбы примешан в кучу, как бы его отделить? Может кто-то более гибкий скрипт предложит?
Все три файла во вложении. |
самба по 139 порту идет вроде.
соответственно, добавить в скрипт grep -v " 139 " типа Код:
[11:44:27:/home/plague]$ cat febstat | grep -v " 139 " |
| Часовой пояс GMT +4, время: 11:31. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.