- Linux выполнить команду для каждой строки
- State of SEO 2021: самые крупные вызовы и угрозы
- ВКонтакте открыла SDK VK Звонков для сторонних разработчиков
- Хитрости командной строки linux. Часть 5
- Использование Операторов «Grep ИЛИ / Grep И / Grep НЕ» в BASH
- Оператор Grep ‘OR’
- Оператор Grep ‘AND’
- Оператор Grep ‘NOT’
- Печать Столбцов (Колонок) в Bash с помощью AWK
- Печать Столбцов по Номерам с помощью AWK
- Изменить Разделитель Колонок в AWK
- Исключить Определенные Столбцы с помощью AWK
- Напечатать или Исключить Диапазон Столбцов с помощью AWK
- Удаление Первых и Последних Символов из Строк в Bash
- Удалить Первые N Символов Каждой Строки
- Печать Строки Между Заданными Символами
- Печать Первых N Символов Каждой Строки
- Удалить Последний Символ Каждой Строки
- Удалить Последние N Символов Каждой Строки
- Добавить Символ в Начале или в Конце Каждой Строки с AWK и SED
- Добавить Символы в НАЧАЛЕ Каждой Строки
- Закомментировать Строки в Файле
- Добавить Символы в КОНЦЕ Каждой Строки
- Добавить Точку с Запятой в Конце Каждой Строки
- Добавить Символы в НАЧАЛЕ и в КОНЦЕ Строк
- Добавить Запятые и Напечатать в Одну Строку
- Проверить Существует ли Файл
- Синтаксис
- Основные параметры
- Примеры
- Пример BASH Скрипта
- Напечатать Usage и Прервать Скрипт при Незаданных Аргументах
- Пример Bash Скрипта
- CASE — Оператор Выбора в Bash
- Базовый Синтаксис Оператора Выбора CASE
- Пример BASH Скрипта с Оператором CASE
- «Да/Нет» в Bash Скрипте — Запрос Подтверждения
- Запрос о Продолжении в Bash
- Простой «Да/Нет» Вопрос в Bash
- Выбираем «Да/Нет» из Меню в Bash
- Выполнить и Повторить Команду N Раз в Bash
- Повторить Команду Несколько Раз в Linux Shell
- Добавить комментарий Отменить ответ
Linux выполнить команду для каждой строки
- Поисковые системы
- Яндекс
- Каталоги сайтов
- Прочие поисковики
- Агрегаторы и доски объявлений
- Практика оптимизации
- Общие вопросы оптимизации
- Частные вопросы — ранжирование, индексация, бан
- Сервисы и программы для работы с SE
- Любые вопросы от новичков по оптимизации
- Ссылочные и пользовательские факторы
- Поисковые технологии
- Doorways & Cloaking
- Трафик для сайтов
- Поисковая и контекстная реклама
- Google Adwords
- Яндекс.Директ
- Тизерная и баннерная реклама
- Общие вопросы рекламы
- Монетизация сайтов
- Партнерские программы в Интернете
- Контекстная реклама
- Google AdSense
- Рекламная Сеть Яндекса
- Размещение тизерной и баннерной рекламы
- Общие вопросы
- Сайтостроение
- Веб-строительство
- Статистика и аналитика
- Доменные имена
- Администрирование серверов
- Хостинг
- Безопасность
- Usability и удержание посетителей
- Копирайтинг
- Социальный Маркетинг
- Вконтакте
- YouTube
- Facebook & Instagram
- TikTok
- Telegram
- Общие вопросы
- Общение профессионалов
- Семинары и конференции
- eCommerce, интернет-магазины и электронная коммерция
- Телефония и коммуникации для бизнеса
- Деловые вопросы
- Финансы
- Cчет в Яндекс.Деньгах
- Криптовалюты
- Инвестиции
- Экономика
- Правовые вопросы
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты — покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки — обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
- О сайте и форуме
- Самое разное
- Курилка
- Встречи и сходки
- Железо и софт
State of SEO 2021: самые крупные вызовы и угрозы
ВКонтакте открыла SDK VK Звонков для сторонних разработчиков
Есть текстовый файл ip.txt, в каждой строке которого записан IP адрес в текстовом формате
Пример файла ip.txt
Посоветуйте, пожалуйста, как сделать, что бы для каждой строки из файла ip.txt выполнить определенную команду?
То есть нужна программа, которая прочитает файл ip.txt и для каждой строки выполнит, команду подставив IP адрес из файла.
iptables -A INPUT -s 187.65.27.242 -j DROP
iptables -A INPUT -s 59.97.208.180 -j DROP
iptables -A INPUT -s 88.164.194.205 -j DROP
Можно ли это сделать на shell Linux? Если да то посоветуйте какие команды использовать.
for i in `cat ip.txt`
iptables -A INPUT -s $i -j DROP
Только не забудьте на всякий случай в начале явно разрешить свой айпи в фаере, а то мало ли..
cat ip.txt | xargs -n1 -I_ iptables -A BAN -s _ -j DROP
INPUT не стоит захламлять кучей отднотипных правил — вынесите
их в отдельную чепочку и подключите ее _одним_ правилом в INPUT.
cat ip.txt | while read $ip;
Будет работает для кучи команд и огромных файлов.
Совет по поводу цепочки — согласен. Еще лучше — загружать это одним сисколлом через iptables-save/iptables-restore
только $ в $ip — имхо, лишнее 😉
Boris A Dolgov:
Еще лучше — загружать это одним сисколлом через iptables-save/iptables-restore
скорее, не загружать, а _догружать_. как-то так:
Спасибо за помощь.
Хакеры снова начали ддосить.
Пока решил проблему напсанием на с++ анализатора логов апача, который получает список IP адресов ботнета, затем эти IP заносятся в iptables.
Пока атаку отбил.
Посмотрим, что они завтра придумают.
zexis:
Есть текстовый файл ip.txt, в каждой строке которого записан IP адрес в текстовом формате
Пример файла ip.txt
187.65.27.242
59.97.208.180
88.164.194.205
Посоветуйте, пожалуйста, как сделать, что бы для каждой строки из файла ip.txt выполнить определенную команду?
То есть нужна программа, которая прочитает файл ip.txt и для каждой строки выполнит, команду подставив IP адрес из файла.
Вот пример.
iptables -A INPUT -s 187.65.27.242 -j DROP
iptables -A INPUT -s 59.97.208.180 -j DROP
iptables -A INPUT -s 88.164.194.205 -j DROP
Можно ли это сделать на shell Linux? Если да то посоветуйте какие команды использовать.
Источник
Хитрости командной строки linux. Часть 5
Использование Операторов «Grep ИЛИ / Grep И / Grep НЕ» в BASH
Оператор Grep ‘OR’
Находим все строки в файле, которые содержат какие-либо из перечисленных шаблонов.
Используя команду GREP :
Используя команду AWK :
Используя команду SED :
Оператор Grep ‘AND’
Находим и печатаем строки содержащие все перечисленные паттерны.
Используя команду GREP :
Используя команду AWK :
Используя команду SED :
Оператор Grep ‘NOT’
Находим и печатаем строки, которые не содержат указанный паттерн.
Используя команду GREP :
Используя команду AWK :
Используя команду SED :
Печать Столбцов (Колонок) в Bash с помощью AWK
AWK — это мощный инструмент командной строки, который можно использовать для обработки входных данных в виде столбцов.
С помощью примеров из данной статьи, Вы сможете решать такие распространенные задачи, как :
- Печать Столбцов по Номерам
- Изменять Разделители Колонок
- Исключать Определенные Столбцы
- Печатать или Исключать Диапазон Столбцов
Печать Столбцов по Номерам с помощью AWK
Вывести все столбцы.
Напечатать 3-ий столбец.
Напечатать 1-ый и 3-ий столбцы.
Изменить Разделитель Колонок в AWK
По умолчанию AWK, в качестве разделителя колонок, использует пробелы и табуляции.
Использовать «,» (запятую) в качестве разделителя и вывести 2-ую колонку.
Использовать «:» (двоеточие) в качестве разделителя и напечатать 3-ий столбец.
Исключить Определенные Столбцы с помощью AWK
Напечатать все столбцы, за исключением 3-его.
Напечатать все столбцы, за исключением 1-ого и 2-ого.
Напечатать или Исключить Диапазон Столбцов с помощью AWK
Вывести колоноки со 2-ой по 4-ую.
Исключить диапазон столбцов со 2-ого по 4-ый и напечатать все остальные.
Удаление Первых и Последних Символов из Строк в Bash
Я создал файл со следующим содержимым и буду использовать его в примерах ниже. Допустим нам необходимо удалить несколько символов с начала и с конца каждой строки этого файла.
Удалить Первые N Символов Каждой Строки
Используйте следующую команду чтобы удалить первые 5 символов каждой строки (удаляем первые 5 символов и печатаем каждую строку, начиная с 6-ого символа) :
Печать Строки Между Заданными Символами
Используйте следующую команду чтобы напечатать содержимое каждой строки между 9-ым и 20-ым символами в Bash :
Печать Первых N Символов Каждой Строки
Используйте следующую команду чтобы напечатать первые 20 символовкаждой строки в Bash :
Удалить Последний Символ Каждой Строки
Используя сочетание команд reverse и cut, мы можем удалять последние N символов каждой строки, как показано ниже. (источник)
Используйте следующую команду чтобы удалить последний символ каждой строки в Bash :
Удалить Последние N Символов Каждой Строки
Используйте следующую команду чтобы удалить последние 8 символовкаждой строки в Bash :
Добавить Символ в Начале или в Конце Каждой Строки с AWK и SED
Я создал файл со следующим содержимым и буду использовать его в примерах ниже :
Допустим нам необходимо добавить символы в НАЧАЛЕ или в КОНЦЕ каждой строки этого файла.
Добавить Символы в НАЧАЛЕ Каждой Строки
Используйте следующие команды, чтобы добавить один или несколько символов в НАЧАЛЕ каждой строки файла :
Закомментировать Строки в Файле
Используйте следующую AWK команду для того, чтобы закомментировать все строки файла, вставив «#» (знак решетки) в НАЧАЛЕ каждой строки файла :
Добавить Символы в КОНЦЕ Каждой Строки
Используйте следующие команды, чтобы добавить какой-либо текст в КОНЦЕ каждой строки файла :
Добавить Точку с Запятой в Конце Каждой Строки
Используйте следующую AWK команду для того, чтобы вставить «;» (точку с запятой) в КОНЦЕ каждой строки файла :
Добавить Символы в НАЧАЛЕ и в КОНЦЕ Строк
Используйте следующие команды, чтобы добавить какой-либо префикс в НАЧАЛЕ и какой-либо суффикс в КОНЦЕ каждой строки файла :
Добавить Запятые и Напечатать в Одну Строку
Я часто использую следующую команду для того, чтобы добавить в конце каждой строки файла, кроме последней, по запятой, а затем вывести весь файл в одну строку :
Проверить Существует ли Файл
В процессе написания BASH скриптов, очень часто возникает ситуация, когда необходимо проверить существование файла, прежде чем предпринимать какие-либо действия.
Эта работа для команды test (то же, что и []). Эта команда позволяет проводить ряд тестов, и по окончанию устанавливает код завершение равным 0 (правда) или 1 (ложь), в зависимости от того, чем окончился тест.
Синтаксис
Основные параметры
Параметры | Описание |
---|---|
-e | Возвращает значение если файл существует |
-f | Возвращает значение если файл существует и это обычный файл |
-r | Возвращает значение если файл существует и он доступен для чтения |
-w | Возвращает значение если файл существует и он доступен для записи |
-x | Возвращает значение если файл существует и он исполняемый |
Примеры
1. Проверим существует ли файл /etc/passwd и напечатаем Файл Найден, если он существует :
2. Проверим существует ли файл /etc/passwd и напечатаем Файл НЕ Найден, если он НЕ существует :
3. Проверим существование файла /etc/passwd и выполним какое-либо действие если он существует, либо иное действие, если этот файл НЕ существует :
Пример BASH Скрипта
Этот скрипт проверяет существует ли файл или нет :
Сохраните и выполните скрипт :
chmod +x script.sh
./script.sh /path/to/SomeFile.txt
The File ‘/path/to/SomeFile.txt’ Does Not Exist
./script.sh /etc/resolv.conf
The File ‘/etc/resolv.conf’ Exists
Напечатать Usage и Прервать Скрипт при Незаданных Аргументах
Используйте следующую проверку в shell скриптах, чтобы :
1. проверить количество входящих аргументов
2. вывести сообщение об ошибке, если количество входящих аргументов некорректно
3. прервать shell скрипт со статусом ошибки
Параметр | Описание |
---|---|
$# | переменная, содержащая количество аргументов, преданных скрипту |
-eq 0 | проверяем, равняется ли количество переданных аргументов нулю |
$0 | возвращает путь к shell скрипту |
Пример Bash Скрипта
Следующий скрипт использует команду dig для поиска DNS-сервера доменного имени. Проверяемый домен должен передаваться скрипту в качестве аргумента.
Пример выполнения скрипта, если аргумент не указан :
$ ./find_ns.sh
Usage: ./find_ns.sh domain_name
Пример работы скрипта при заданном аргументе :
$ ./find_ns.sh shellhacks.com
ns2.ukraine.com.ua.
ns3.ukraine.com.ua.
ns1.ukraine.com.ua.
CASE — Оператор Выбора в Bash
Базовый Синтаксис Оператора Выбора CASE
Пример BASH Скрипта с Оператором CASE
Примеры работы скрипта :
$ ./testcase.sh
Какой Linux дистрибутив Вы знаете? centos
Эй! Это моя любимая серверная операционная система!
$ ./testcase.sh
Какой Linux дистрибутив Вы знаете? rhel
Эй! Это моя любимая серверная операционная система!
$ ./testcase.sh
Какой Linux дистрибутив Вы знаете? ubuntu
Я тоже знаю ubuntu! Это операционная система, основанная на Debian.
$ ./testcase.sh
Какой Linux дистрибутив Вы знаете? pfff
Хмм, кажется я никогда не использовал этот дистрибутив.
«Да/Нет» в Bash Скрипте — Запрос Подтверждения
В bash скриптах очень часто возникает необходимость приостановить выполнение задачи и поставить пользователю вопрос, на который тот должен ответить Да или Нет.
Например, перед выполнением потенциально опасной части bash скрипта, хорошей идеей будет запросить подтверждение у пользователя, задав вопрос — «Вы уверены?».
В этой заметке Вы найдете три самых простых и быстрых способа задать «Да/Нет» вопрос в bash скрипте.
Запрос о Продолжении в Bash
Лучший способ запросить подтверждение на продолжение в bash скрипте — это с помощью команды read (источник) :
Простой «Да/Нет» Вопрос в Bash
Одним из самых распространенных способов постановки вопросов в bash скриптах — это комбинирование команд read + case (источник) :
Выбираем «Да/Нет» из Меню в Bash
Еще один легкий способ — с помощью команды select (источник) :
Выполнить и Повторить Команду N Раз в Bash
Иногда возникает необходимость несколько раз выполнить одну и ту же команду из командной строки в Linux.
В Bash существует простая конструкция, с помощью которой команду можно прописать один раз, но сделать так, чтобы она была выполнена N раз.
Из этой небольшой заметки вы узнаете, что лучший способ чтобы выполнить одну и ту же команду N раз подряд — это использовать цикл FOR в Bash.
Повторить Команду Несколько Раз в Linux Shell
Используйте следующий синтаксис, чтобы выполнить какую-либо команду 5 раз :
Давайте поможем Барту Симпсону со школьной доской :
Если вам необходимо часто использовать такую конструкцию, тогда не помешает создать соответствующую Bash функцию (добавьте в
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
Источник