bash, несколько вопросов
Модераторы: /dev/random, Модераторы разделов
-
- Сообщения: 179
- ОС: Arch Linux Current
bash, несколько вопросов
1)
TEST="foo"
как мне узнать длину строки $TEST?
2)
как мне узнать размер файла и занести его в переменную?
3)
есть файл
A
B
C
D
XXX
1
2
3
4
как мне из этого файла вычленить строчки 1 2 3 4... те что до пометки (в данном случае XXX)
TEST="foo"
как мне узнать длину строки $TEST?
2)
как мне узнать размер файла и занести его в переменную?
3)
есть файл
A
B
C
D
XXX
1
2
3
4
как мне из этого файла вычленить строчки 1 2 3 4... те что до пометки (в данном случае XXX)
Registered Linux user number #434194
-
- Бывший модератор
- Сообщения: 2521
- Статус: статус, статус, статус
Re: bash, несколько вопросов
1. ${#TEST}
2. stat
2. stat
-
- Сообщения: 179
- ОС: Arch Linux Current
-
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: bash, несколько вопросов
Signate
3.
3.
Код: Выделить всё
sed -e '/^XXX$/Q' /path/to/file
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
- Сообщения: 860
- Статус: Изменник
- ОС: Archlinux on IBM Z60m
Re: bash, несколько вопросов
можно я тоже вопрос задам?
можно ли относительно легко удалить строку из файла, в которой содержится определенный текст?
естественно на bash.
заранее спасибо.

можно ли относительно легко удалить строку из файла, в которой содержится определенный текст?
естественно на bash.
заранее спасибо.
Win7 on X200s || Android 2.3 on Galaxy Tab
Блог
Блог
-
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: bash, несколько вопросов
Malcolm
и вообще man sed
Код: Выделить всё
sed -i -e '/определенный текст/d' /path/to/file
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
- Сообщения: 860
- Статус: Изменник
- ОС: Archlinux on IBM Z60m
Re: bash, несколько вопросов
sash-kan
спасибо большое.
спасибо большое.
Win7 on X200s || Android 2.3 on Galaxy Tab
Блог
Блог
-
- Сообщения: 860
- Статус: Изменник
- ОС: Archlinux on IBM Z60m
Re: bash, несколько вопросов
дабы не плодить темы, спрошу здесь
Решил написать свой первый скрипт на bash.
Решил с помощью скрипта банить людей на фтп.
файл ban -
записывает правило в таблицу firewall'а, и заставляет перечитать правила. Это сделать не проблема, и я это сделал. но хочется, чтобы бан ставился на время.
Мне нужно, чтобы через <time> часов бан сам снимался. скрипт unban опять же написан. Ему должен быть передан <ip> как аргумент.
Можно это делать через crontab, но там надо высчитывать, в какое время именно надо запустить команду. Можно через at. но тут опять проблема.
как я понял команды вводятся через "интерактив". Можно задавать команду через файл (в файле храниться путь к команде и аргумент.
Короче. я вот думаю там чтобы для каждого ip'а создавать файл с содержанием /path/to/unban <ip> и делать
at -f /path/to/file/with/ip now + N hour
Хочу спросить совета, может есть более "элегантный" способ?
Решил написать свой первый скрипт на bash.
Решил с помощью скрипта банить людей на фтп.
Код: Выделить всё
ban <ip> <time> <reason>
файл ban -
записывает правило в таблицу firewall'а, и заставляет перечитать правила. Это сделать не проблема, и я это сделал. но хочется, чтобы бан ставился на время.
Мне нужно, чтобы через <time> часов бан сам снимался. скрипт unban опять же написан. Ему должен быть передан <ip> как аргумент.
Можно это делать через crontab, но там надо высчитывать, в какое время именно надо запустить команду. Можно через at. но тут опять проблема.
как я понял команды вводятся через "интерактив". Можно задавать команду через файл (в файле храниться путь к команде и аргумент.
Короче. я вот думаю там чтобы для каждого ip'а создавать файл с содержанием /path/to/unban <ip> и делать
at -f /path/to/file/with/ip now + N hour
Хочу спросить совета, может есть более "элегантный" способ?
Win7 on X200s || Android 2.3 on Galaxy Tab
Блог
Блог
-
- Бывший модератор
- Сообщения: 2521
- Статус: статус, статус, статус
Re: bash, несколько вопросов
Есть, crontab с запуском каждый час, например.
-
- Сообщения: 860
- Статус: Изменник
- ОС: Archlinux on IBM Z60m
Re: bash, несколько вопросов
хм..а по-подробней можно?
это cron.hourly? оно?
например, через 60 часов надо снять бан.
если через crontab, то надо "высчитывать" когда именно запустить unban, например сегодня понедельник, 14:00, я баню человека на 48 часов, это надо занести в cron записать типа "разбанить в среду в 14:00". Это же надо высчитать, когда через at всё делается проще.
Или я недопонимаю суть cron'а или at?
Win7 on X200s || Android 2.3 on Galaxy Tab
Блог
Блог
-
- Сообщения: 260
- ОС: Debian Etch, RHEL-5.4
Re: bash, несколько вопросов
Создай файл, в который прописывается время разбанивания каждого IP. at может не сработать, если по какой-либо причине потребуется рестартануть сервер (мало ли что в жизни бывает).
Послужной список: Slackware-3.x, RedHat-4.x,5.x,6.x,7.x, FedoraCore-3, Debian Etch/Lenny
Осваиваю: RHEL-5.4
Осваиваю: RHEL-5.4
-
- Сообщения: 860
- Статус: Изменник
- ОС: Archlinux on IBM Z60m
Re: bash, несколько вопросов
т.е. всё-таки придётся высчитывать время(день, неделя и др.), когда надо разбанить?
Win7 on X200s || Android 2.3 on Galaxy Tab
Блог
Блог
-
- Бывший модератор
- Сообщения: 2521
- Статус: статус, статус, статус
Re: bash, несколько вопросов
-
- Сообщения: 860
- Статус: Изменник
- ОС: Archlinux on IBM Z60m
Re: bash, несколько вопросов
вот блин, не понимаю
можно немного проще, и если не трудно, ссылки на доки.
Премного благодарен.

Премного благодарен.
Win7 on X200s || Android 2.3 on Galaxy Tab
Блог
Блог
-
- Бывший модератор
- Сообщения: 2521
- Статус: статус, статус, статус
-
- Сообщения: 860
- Статус: Изменник
- ОС: Archlinux on IBM Z60m
Re: bash, несколько вопросов
первым делом туда заглянул. спасибо.
Win7 on X200s || Android 2.3 on Galaxy Tab
Блог
Блог
-
- Сообщения: 125
-
- Сообщения: 860
- Статус: Изменник
- ОС: Archlinux on IBM Z60m
Re: bash, несколько вопросов
backslash писал(а): ↑22.08.2006 11:20А почему нельзя сделать так:
Код: Выделить всё
echo "unban ${ip}" | at "now + ${hour}hours"
?
точно


Win7 on X200s || Android 2.3 on Galaxy Tab
Блог
Блог
-
- Сообщения: 125
Re: bash, несколько вопросов
Всегда пожалуйста!
...и еще. Советую обратить особое внимание на диагностику и обработку исключительных ситуаций: не запущен atd, машина будет перезагружаться (правильно в ветке заметили) и пр. и пр. Стоит протестировать скрипты в намеренно "жестких" условиях, так как, я полагаю, задача из разряда серьезных.
...и еще. Советую обратить особое внимание на диагностику и обработку исключительных ситуаций: не запущен atd, машина будет перезагружаться (правильно в ветке заметили) и пр. и пр. Стоит протестировать скрипты в намеренно "жестких" условиях, так как, я полагаю, задача из разряда серьезных.
-
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: bash, несколько вопросов
и что — задание потеряется???(backslash @ Aug 22 2006, в 11:13) писал(а):машина будет перезагружаться
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
- Сообщения: 49
- ОС: UNIX
Re: bash, несколько вопросов
подскажите, пожалуйста, как без вымудрёжа с head и tail напечатать строку по номеру? К примеру, напечатать строку 213.
-
- Бывший модератор
- Сообщения: 2521
- Статус: статус, статус, статус
Re: bash, несколько вопросов
sed, вестимо
-
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
-
- Бывший модератор
- Сообщения: 2521
- Статус: статус, статус, статус
Re: bash, несколько вопросов
Мусье мастер извращений)
Вообще, есть такая хорошая вещь про bash: Advanced Bash Scripting(или попросту ABS).
-
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: bash, несколько вопросов
много раз начинал читать

а .. огласите правильный вариант? мне показывали этот как наиболее простой в свое время

-
- Бывший модератор
- Сообщения: 2521
- Статус: статус, статус, статус
Re: bash, несколько вопросов
-
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: bash, несколько вопросов
спасибо



-
- Сообщения: 860
- Статус: Изменник
- ОС: Archlinux on IBM Z60m
Re: bash, несколько вопросов
можно ли на bash'е вставить строку в файл, после определённого слова?
Win7 on X200s || Android 2.3 on Galaxy Tab
Блог
Блог
-
- Бывший модератор
- Сообщения: 2521
- Статус: статус, статус, статус
Re: bash, несколько вопросов
Код: Выделить всё
man sed
-
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: bash, несколько вопросов
(Malcolm @ Aug 28 2006, в 00:26) писал(а):можно ли на bash'е вставить строку в файл, после определённого слова?
на bash-е — нет. а вот с помощью, например, sed-a ... may be helpful
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог