Поиск файлов в Linux

Часто возникают ситуации, когда требуется найти один или несколько файлов, соответствующих определенному критерию, в структуре файловой системы. Для решения этой задачи в Linux существует команда find. Она выполняет рекурсивный поиск по дереву каталогов, ищет файлы, удовлетворяющие заданному критерию, и может выполнить с найденными файлами определенное действие. Команда имеет следующий синтаксис:

find     Путь     Параметр     Операция

find - Сама команда
Путь - Место для поиска: /, /etc, /var/www, /usr/lib и т.д.
Параметр - Поиск по имени: -name
Параметр - Поиск по UID: -user
Параметр - Поиск по GID: -group
Параметр - Поиск по разрешениям: -perm
Параметр - Поиск по индексному узлу: -inum
Параметр - Поиск по времени обращения: -atime
Параметр - Поиск по времени модификации: -mtime

Команда find находит файлы, удовлетворяющие заданному критерию, и выводит полный путь к каждому из них. Рассмотрим примеры применения find:

1. Поиск файла file9 в домашних каталогах пользователя:

find /home/ -name file9 -print

Команда find по умолчанию выводит результаты на экран, поэтому передавать параметр -print не обязательно.

2. Поиск в каталоге /dev/ файлов и каталогов, имена которых начинаются с sg:

find /dev -name sg*

Звездочка (*) используется здесь как подстановочный символ. Запись sg* обозначает любые файлы и каталоги, имена которых начинаются с sg.

3. Поиск файлов размером более 1000 блоков (размер одного блока равен 512 байтам) в каталоге пользователя root:

find /root -size +1000

4. Поиск в каталоге /home файлов, владельцем которых является пользователь nagg:

find /home -user nagg

5. Поиск в каталоге /etc/init.d файлов, модифицированных более 30 дней назад:

find /etc/init.d -mtime +30

6. Поиск в каталоге /etc/init.d файлов, к которым не было обращений за последние 90 дней:

find /etc/init.d -atime +90

7. Поиск в каталоге /dev символьных файлов DSF с правами доступа по маске 700:

find /dev/rdsk -type c -perm 700

8. Поиск в каталоге /user символических ссылок с разрешениями 777:

find /usr -type l -perm 777

9. Поиск файлов temp1 по всему дереву каталогов и их удаление без подтверждения:

find / -name temp1 -exec rm{} \;

Шаблон {} \; – часть синтаксиса, которая должна определяться именно таким образом.

10. Поиск файлов temp1 по всему дереву каталогов и их удаление после подтверждения:

find / -name temp1 -ok rm{} \;

До новый встреч в следующих статьях. Пишите ваши комментарии.

Где взять дистрибутив Ubuntu Linux

http://ubuntu.ru сайт полностью русскоязычный и посвящен Ubuntu Linux. На страницу загрузки можно перейти по ссылке http://ubuntu.ru/get.
На этой странице список ссылок для загрузки различных версий и вариантов дистрибутивов Ubuntu. Дистрибутивы размещаются на торрент-трекерах. Но зеркала http://mirror.yandex.ru и ftp://mirror.yandex.ru предоставляют доступ к HTTP- и FTP-серверам, с которых можно загрузить нужный дистрибутив, минуя торрент-трекеры.
(далее…)

Как создать симлинк в linux?

Для того чтобы создать симлинк в линукс используется следующая комадна:

ln -s /opt/directory /home/symlink-to-opt-dir

Таким образом мы создали симлинк symlink-to-opt-dir на директорию /opt/directory
Теперь можно поменять нам нужно поменять права на симлинк, для этого воспользуемся командой chown:

chown -h user:group /home/symlink-to-opt-dir

Теперь все отлично, симлинк создан, права выставлены!

Простое копирование файлов в linux/unix системах

Для переноса каталога easycopy с одного сервера на другой, используем следующую команду:

rsync -av /home/easycopy/ root@server2:/home/easycopy/

Как узнать какое приложение в linux слушает порт?

Бывает, посмотришь список открытых портов на своем Linux сервере и думаешь, какое приложение слушает порт 4403 (например, хотя это не важно, у каждого порт будет свой). Для этого мы воспользуемся несложными командами:

netstat -natp

Покажет вывод:

tcp        0      0 0.0.0.0:4403                0.0.0.0:*                   LISTEN      1958/servicecs

Отсюда мы увидим, что порт 4403 слушает сервис с именем servicecs и PID-ом 1958. Теперь мы можем узнать о запущенном сервисе немного больше:

ps -aux | grep 1958

Она покажет скрипт, который запускает сервис:

softingin  1958  0.0  0.7 169704 63904 ?        S    Apr16   3:00 servicecs ./highload-servcs start -d

Теперь мы знаем кто занимает порт 4403, это больше не секрет.
Всего хорошего.

Узнать модель сервера в Linux

Иногда требуется узнать модель сервера на котором установлена ваша ОС, будь то UNIX, LINUX или WINDOWS – не важно. Нам понадобится командная строка и знание определенных команд. Итак, приступим.

В системах Linux семейства Debian, Ubuntu воспользуйтесь командой:

dmidecode –t system

В системах Linux семейства RedHat (CentOS, Fedora, ASPLinux)

dmidecode –t system

На серверах/компьютерах под управлением ОС Windows информация о серийном номере, производителе и модели может быть получена из командной строки при помощи вызова функций Windows Management Instrumentation (WMI).

Серийный номер

wmic bios get serialnumber

Производитель

wmic csproduct get vendor

Модель

wmic csproduct get name

Решение проблемы доступа: Protocol major versions differ: 2 vs. 1

Если у вас случилась подобная неприятность:

root@sip:~# ssh admin@10.10.10.5
Protocol major versions differ: 2 vs. 1

Во-первых, это означает что у вас на сервере/железке включен ssh версии 1 (это небезопасно во многих случаях, однако, все же лучше чем telnet который передает пароли в открытом виде). Для решения используем следующую команду:

root@sip:~# ssh -1 admin@10.10.10.5

Но в итоге можем получить:

The authenticity of host '10.10.10.5 (10.10.10.5)' can't be established.
RSA1 key fingerprint is 6f:dc:58:8d:e3:c5:46:bf:1b:a4:e0:d5:ed:29:06:64.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.10.10.5' (RSA1) to the list of known hosts.
Selected cipher type <unknown> not supported by server.

Тут явно видно, что на удаленном сервере/железке используется только DES. Что ж, будем использовать его.

root@sip:~# ssh -1 admin@10.10.10.5
Selected cipher type <unknown> not supported by server.
root@sip:~# ssh -c DES -1 admin@10.10.10.5
Warning: use of DES is strongly discouraged due to cryptographic weaknesses
admin@10.10.10.5's password:
Type help or '?' for a list of available commands.
ciscoasa>
ciscoasa> en
Password: ********
ciscoasa#

Доступ получен, все просто.

Настройка PPPoE-соединения для ОС Linux

Для установки и настройки PPPoE клиента под ОС Linux необходимы:
Point-To-Point Protocol Daemon
rp-pppoe redirector

Для работы PPPoE pppd должен быть версии не ниже 2.3.7.
Узнать версию пакета можно командой:
[root@ck sbin]#rpm –q ppp
ppp-2.4.4-1.fc6

Скачать pppd можно из используемого Вами дистрибутива Linux.
RP-PPPoE пакет, как правило, поставляется во всех современных версиях дистрибутивов Linux.

Установка
Установки PPPoE клиента из исходников
Распаковываем скачанный архив, например rp-pppoe-3.5.tar.gz
# tar zxvf rp-pppoe-3.5.tar.gz
Заходим в созданную директорию (rp-pppoe-3.5)
# cd rp-pppoe-3.5
Из под root пользователя запускаем установочный скрипт
# ./go

(далее…)

Установка Asterisk и FreePBX на Ubuntu 10.04

Asterisk

Asterisk это свободная АТС (PBX)для IP-телефонии. Это то, что большие и не очень компании используют для управления внутренними и внешними телефонными звонками. Asterisk применяется как движок для АТС с разнообразными оболочками управления, одну из ни используют для создания коробочной АТС под названием Trixbox. Возможно использование Asterisk и без оболочек, но это довольно-таки не просто. Специально для того, чтобы облегчить жизнь пользователям и администратору используется такая оболочка, как FreePBX.

FreePBX

FreePBX это графический интерфейс для Asterisk. FreePBX использует web интерфейс, которым можно управлять звёздочкой с любого места и гораздо проще чем из командной строки. Он использует модули, которые расширяют функционал, как, например, Firefox.

(далее…)

linux screen

Чрезвычайно полезная утилита screen есть в linux. Она позволяет создавать в терминале ssh несколько экранов и удобно переключаться между ними. Также полезен screen в случае если надо делать какие-то операции по ssh и обрывы связи вредны (например у многих провайдеров установлены таймауты на сессии tcp).  Достаточно просто, работать в скрин и удобно. И еще у screen дополнительные функции вроде создания нескольких окон внутри сессии. Теперь рассмотрим утилиту screen подробнее.

Установить утилиту легко, для пользователей CentOS

~]# yum install screen

Для любителей Debian, Ubuntu:

~]#apt-get install screen

Запуск утилиты:

~]# screen

Теперь,  для того чтобы отключиться от экрана, нажимаем Ctrl+A затем d

[detached]
[root@srv2 ~]#

Комбинации клавиш в сеансе screen:

  • Ctrl+A c – создать окно в текущей сессии
  • Ctrl+A n – следующее окно
  • Ctrl+A p – предыдущее окно
  • Ctrl+A d – отключиться от screen (но при этом сессия останется работать в фоне)

Переподключиться к запущенной в фоне screen:

~]# screen -r

Для примера берём задачу, скачать iso-шку CentOS. Далее будет понятнее если показать выкладки из шела.

~]# screen
~]# wget http://mirror.yandex.ru/centos/6/isos/x86_64/CentOS-6.0-x86_64-LiveCD.iso

Теперь, для того чтобы отключиться от экрана, нажимаем Ctrl+A затем d

 ~]# screen -ls
There is a screen on:
        11524.pts-0.abel        (Detached)
1 Socket in /var/run/screen/S-root.
 ~]# screen -r 11524.pts-0.abel

Для того чтобы узнать другие комбинации клавиш работающие/полезные в screen наберите в окне screen Ctrl+A затем «?»