fewit.ru :: Заметки недоайтишника

Ещё один криворукий админ

Иногда нужно найти файлы, содержащие определенный текст. В современный системах для рабочих станций вовсю используются утилиты из разряда Desctop Search, которые индексируют все документы и затем предоставляют возможность быстро найти искомый файл. В Linux сервере для этого можно использовать команду grep.

Используем grep для поиска текста

grep “text string” directory

При выполнении данной команды grep будет искать строку text string во всех файлах в директории directory

Примеры использования grep

$ grep "redeem reward" /home/tom/*.txt

Как найти текст во всех подкаталогах

grep позволяет искать в подкаталогах, используя опцию -r:

$ grep -r "redeem reward" /home/tom

Вывести только имена найденных grep файлов

Чтобы grep вывела имена найденных файлов, стоит использовать опцию -H.

sudo grep -Hr pure-ftpd /etc/

Вывод:

...
/etc/rc2.d/S20pure-ftpd:# Provides: pure-ftpd
/etc/rc2.d/S20pure-ftpd:# pure-ftpd starts and stops the pure-ftpd ftp daemon
/etc/rc2.d/S20pure-ftpd:NAME=pure-ftpd
/etc/rc2.d/S20pure-ftpd:WRAPPER=/usr/sbin/pure-ftpd-wrapper
/etc/rc2.d/S20pure-ftpd:PIDFILE=/var/run/pure-ftpd/pure-ftpd.pid
/etc/rc2.d/S20pure-ftpd:SUFFIX=`basename $ME | sed -ne 's/^pure-ftpd-\(.*\)/\1/p'`
/etc/rc2.d/S20pure-ftpd: DAEMON=/usr/sbin/pure-ftpd-$SUFFIX
...

Теперь нужно прогнать вывод через фильтр, чтобы оставить только имена файлов, в которых есть вхождение текста, а также удалить дубликаты. Нужно использовать такую команду:

sudo grep -Hr pure-ftpd /etc/ | cut -d: -f1 | sort -u

Вывод:

grep: /etc/blkid.tab: No such file or directory
/etc/default/pure-ftpd-common
/etc/ftpallow
/etc/init.d/pure-ftpd
/etc/logrotate.d/pure-ftpd-common
/etc/pam.d/pure-ftpd
/etc/pure-ftpd/conf/AltLog
/etc/pure-ftpd/conf/PureDB
/etc/rc0.d/K20pure-ftpd
/etc/rc1.d/K20pure-ftpd
/etc/rc2.d/S20pure-ftpd
/etc/rc3.d/S20pure-ftpd
/etc/rc4.d/S20pure-ftpd
/etc/rc5.d/S20pure-ftpd
/etc/rc6.d/K20pure-ftpd

Источник: http://itman.in/linux-grep-find-text/

Июнь 22nd, 2017

Posted In: Linux

Нужно было проверить сколько влезет мак адресов в таблицу коммутатора.
Для этого использовали утилиту scapy.

Перед запуском скрипта поставили некоторые пакеты:

sudo apt-get install python-scapy python-pyx python-gnuplot texlive

Также нужен установленный python, не ниже чем 2.5

Сам скрипт генерации маков:

import random, time, sys
from scapy.all import *

for n in xrange(16256) :
 oct1 = 0
 oct2 = 0
 oct3 = 0
 if ((n//256 >= 1) and (n//256 < 256)) :
  oct1 = n//256
  srcMAC= "22:11:19:12:"+ str(hex(oct1)[2:]) +":"+ str(hex(n%256)[2:])
  dstMAC = "МАС_СВИЧА"
  print srcMAC + " " + str(n)
  pkt = Ether(src=srcMAC, dst=dstMAC)/IP(src="ВАШ_IP",dst="IP_СВИЧА")/Padding(load="X"*18)
  sendp(pkt, iface="СЕТЕВАЯ_КАРТА", verbose=0)

Запускается как скрипт путона:

sudo /usr/bin/python mac_gen2.py

Сентябрь 15th, 2016

Posted In: Linux, Network, Python, Скрипты

Шаг 1: Обновляем пакеты

# yum update

Шаг 2: Устанавливаем необходимые пакеты

# yum install gcc-c++ patch readline readline-devel zlib zlib-devel 
# yum install libyaml-devel libffi-devel openssl-devel make 
# yum install bzip2 autoconf automake libtool bison iconv-devel

Шаг 3: Устанавливаем RVM ( Ruby Version Manager )

# curl -L get.rvm.io | bash -s stable

Шаг 4: Настройка RVM Environment

# source /etc/profile.d/rvm.sh

Шаг 5: Установка нужную версию Ruby

# rvm install 1.9.3

Шаг 6: Установка дургой версии ( по желанию )

# rvm install 1.8.6

Шаг 7: Выбираем версию по умолчанию

# rvm use 1.9.3 --default 

Шаг 8:Проверяем версию Ruby

# ruby --version

ruby 1.9.3p545 (2014-02-24 revision 45159) [i686-linux]

Апрель 9th, 2014

Posted In: Linux

Использовался Debian 6
Устанавливаем необходимое ПО.

apt-get update && apt-get install vnc4server fluxbox twm xterm pulseaudio pavucontrol zenity audacious mplayer alsa-base alsa-utils libpci3 linux-sound-base pciutils nano libx11-xcb1

Редактируем пароль VNC

vnc4passwd

Запускаем VNC для создания конфига

vnc4server

После этого убиваем VNC и редактируем конфи (далее…)

Ноябрь 16th, 2013

Posted In: Linux, TeamSpeak

yum install perl-DBD-SQLite
yum install perl-Time-HiRes
yum install perl-CPAN
yum install perl-YAML
yum install gcc
perl -MCPAN -e'install "LWP::Simple"'

В порядке очереди.

Июнь 30th, 2013

Posted In: Linux, TeamSpeak

Основы BASH. Часть 2.
Извиняюсь за такую большую задержку между статьями, но сессия дает о себе знать в самый неподходящий момент 🙂
Всем спасибо за замечания, критику и дополнения, которые были озвучены в комментариях к прошлой статье.
Эта часть, как и обещал, будет посвящена циклам, математическим операциям и использованию внешних команд.
Начнем.
(далее…)

Апрель 11th, 2013

Posted In: Linux

Безусловно, все те кто общается с ОС Linux хоть раз да имели дело(во всяком случае слышали точно) с командной оболочкой BASH. Но BASH не только командная оболочка, это еще и превосходный скриптовый язык программирования.
Цель этой статьи — познакомить поближе юзеров с bash, рассказать про синтаксис, основные приемы и фишки языка, для того чтобы даже обычный пользователь смог быстренько написать простой скрипт для выполнения ежедневной(-недельной, -месячной) рутинной работы или, скажем, «на коленке» наваять скриптик для бэкапа директории.
(далее…)

Апрель 11th, 2013

Posted In: Linux

Задача — на минимальных ресурсах VPS развернуть хостинг нескольких не нагруженных сайтов. Сделать это быстро и удобно с минимальными проблемами в будущем и не падать на пиковых нагрузках.

Основные принципы:

1. ОС — Centos-6 86_x64 потому что стабильно, удобно и легко обновляемо.
2. Никакого самосборного софта. А то как говорится «командой make && make install любой дистрибутив превращается в Slackware.»

Маленькое уточнение, на данный момент я использую тарифный план v256 у хостинг провайдера flynet.pro (256Мб оперативки) и не рассчитываю на большую нагрузку так что большая часть относится именно к такому количеству оперативной памяти, но в целом решения легко переносимы фактически на все тарифные планы разных хостинг-провайдеров.
И еще одно уточнение — хостинг делается «для себя». Тут недостаточно описаны моменты, которые стоит учитывать, если вы даете доступ к администрированию сайтов посторонним людям.

Поехали.
(далее…)

Апрель 11th, 2013

Posted In: Linux

Открытие портов 22, 80, 443, 25:

iptables -I INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
iptables -I INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
iptables -I INPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT
iptables -I INPUT -p tcp --dport 25 -m state --state NEW -j ACCEPT
service iptables save

Перезагрузка iptables:

/etc/init.d/iptables restart

Март 24th, 2013

Posted In: Linux

При установка zabbix вылазила ошибка:

date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Moscow' for 'MSK/4.0/no DST' instead [include/page_header.php:185]

Решил проблему редактированием файла php.ini. Находим:

;date.timezone =

Меняем на часовую зону сервера, у меня Москва:

date.timezone = Europe/Moscow

Сохраняем, пинаем апач.

Март 18th, 2013

Posted In: Linux, php

Следующая страница →