Директории с большим количеством файлов

Получилась однажды интересная ситуация, в одной директории оказались миллионы файлов.
Причем часть из них — нужные.

При попытке посмотреть список файлов естественно получится ступор на длительное время.
Как вариант их можно посмотреть через FTP, у которого за частую стандартный лимит на количество отображаемых файлов 10 000, например FTP клиентом FileZilla удобно перемещать файлы по директориям, но этот вариант длительный, из-за того что время еще тратится на FTP запросы, нагрузка на диск при этом низкая.

Если файлы не нужные, их можно удалить командой (с запросом подтверждения на удаление):

rm -r /директория/

Или удалить все без запроса вместе с директорией:

rm -rf /директория/

В моем случае не нужными были мелкие файлы, по этому перейдя в нужную директорию, удалил командой ниже все что меньше указанного размера:

cd /директория/
find -size -2 -type f -print -delete

Перед удалением можно посмотреть количество таких файлов и общее количество, однако это тоже длительные процесс:

find -maxdepth 1 -size -2 -type f -print | wc -l
find -maxdepth 1 -type f -print | wc -l

Если вместо -2 указать 0, то будут удаляться файлы с нулевым размером, то есть пустые.

Если нужно отсортировать файлы по директориям, перейдем в директорию с файлами, создадим нужные директории, например по датам и переместим файлы по шаблону (все у которых название начинается на 2017, -maxdepth 1 указывает что не нужно искать файлы в поддиректориях):

cd /директория/
mkdir 2017
find -maxdepth 1 -type f -name '2017*' -exec mv -vn -t /директория/2017 {} \+

Результат выполнения можно записывать в файл добавив к команде > файл, например:

find -maxdepth 1 -type f -name '2017*' -exec mv -vn -t /директория/2017 {} \+ > /директория/директория/файл.log

Обновление прошивки SJCAM SJ5000x Elite

На тесте обновлю прошивку камеры SJCAM SJ5000x Elite с версии 1.4.8 на 1.4.9.

Опишу по пунктам процедуру обновления:

1) Смотрим в конце настроек камеры установленную версию прошивки.

2) Смотрим есть ли новее версия на официальном сайте и скачиваем если есть
http://support.sjcamhd.com/support/solutions/9000027614

3) На карту памяти камеры, отформатированную в формате FAT32, скопируем ранее скачанный *.bin файл прошивки. Я копировал не вынимая карты памяти, а просто через USB кабель с компьютера, после копирования нажав «безопасное извлечение» после чего отключил кабель.

4) Последним шагом будет подключение камеры к зарядному устройству, после чего автоматически начнется обновление, у меня оно длилось около минуты, световые индикаторы быстро мигали, по завершению камера включилась и на экране появился как обычно значок заряжающейся батареи.

На этом все, настройки после обновления прошивки сбросились на стандартные.

Перенос работающей системы Ubuntu на другой диск

На тесте использую систему Ubuntu Server 14.04.5 LTS.

И так, на работающей системе переключимся на root пользователя:

sudo -i

Проверим какие диски подключены:

fdisk -l

В моем случае первый используется диск /dev/sda (автоматически разбит системой при установке) и /dev/sdb — новый не размеченный:

/dev/sdb1 * Linux
/dev/sdb2 Расширенный
/dev/sdb5 Linux своп / Solaris
/dev/sdb

Разобьем новый диск /dev/sdb аналогично установленному /dev/sda:

sfdisk -d /dev/sda | sfdisk --force /dev/sdb

Форматируем основной раздел и swap на новом диске:

mkfs.ext4 /dev/sdb1
mkswap /dev/sdb5

Создадим пустую директорию, смонтируем в неё первый основной раздел нового диска и скопируем на него всю информацию:

mkdir /newhdd
mount /dev/sdb1 /newhdd
cp -ax /bin/ /boot/ /etc/ /home/ /lib/ /opt/ /root/ /sbin/ /tmp/ /usr/ /var/ /initrd.img vmlinuz /newhdd
cd /newhdd
mkdir /dev /proc /srv /sys /mnt
chmod 777 /tmp

После копирования посмотрим UUID разделов нового диска:

lsblk -o NAME,UUID
blkid

Изменим в файле /newhdd/etc/fstab UUID старых разделов на новые.

И на последок выполним команды в терминале для обновления grub:

mount /dev/sdb1 /newhdd
mount --bind /dev /newhdd/dev
chroot /newhdd
update-grub
exit

После этого можно выключить систему и отсоединить старый диск, при включении копия системы запустится уже с нового диска.

Смотрите также:
Резервное копирование Linux в архив и восстановление из него

Резервное копирование Linux в архив и восстановление из него

На тесте приведу пример примитивного копирования Ubuntu Server системы в архив и восстановление на той же системе либо на чистой новой.

Создаем архив с резервной копией корня диска исключая ненужные директории и сам архив:

sudo tar cvpzf /backup_`date +%Y-%m-%d_%H_%M`.tgz --exclude=/media --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys /

Для восстановления на той же или чистой только установленной системе проверим достаточно ли свободного пространства:

df -h

Если сервер другой с чистой системой, создадим директорию и скопируем в неё копию директории /boot с загрузчиком и файл /etc/fstab:

sudo mkdir /OLD
sudo cp -R /boot/ /OLD/
sudo cp /etc/fstab /OLD/

Находясь в директории с архивом распакуем его с сохранением прав на файлы поверх системы:

sudo tar xvpfz backup_`date +%Y-%m-%d_%H_%M`.tgz -C /

Возвращаем директорию /boot и файл fstab:

sudo cp -R /OLD/boot/ /boot/
sudo cp /OLD/fstab /etc/fstab

Убедимся что копирование прошло успешно и в файлах /boot/grub/grub.cfg и /etc/fstab указан верный UUID, посмотреть UUID разделов в текущей системе можно командой:

lsblk -o NAME,UUID

Перезагружаем систему:

sudo reboot

При таком восстановлении на другой сервер возможно придется чуть изменить конфигурацию системы, например если на новом сервере сетевые интерфейса другого типа и имеют иное имя и т.д.

Смотрите также:
Перенос работающей системы Ubuntu на другой диск

Список SNMP OID для iLO4

Делал сегодня шаблон под Zabbix для мониторинга iLO 4 на сервере HP DL380p G8 и пришлось исследовать несколько OID.

Проверить OID из Linux можно командой:
snmpwalk 192.168.1.5 -c КОМЬЮНИТИ -v 2c OID

Приведу ниже список и описание для OID куллеров, процессоров, датчиков температуры, логических дисков (RAID), жестких дисков, сетевого контроллера iLO, оперативной памяти.

Fans:
.1.3.6.1.4.1.232.6.2.6.7.1.2.0 (Fan Index)
.1.3.6.1.4.1.232.6.2.6.7.1.3.0 (Fan Locale (1=other, 2=unknown, 3=system, 4=systemBoard, 5=ioBoard, 6=cpu, 7=memory, 8=storage, 9=removable media, 10=power supply, 11=ambent, 12=chassis, 13=bridge card, 14=management board, 15=backplane, 16=network slot, 17=blade slot, 18=virtual)
.1.3.6.1.4.1.232.6.2.6.7.1.4.0 (Fan Present (1=other, 2=absent, 3=present)
.1.3.6.1.4.1.232.6.2.6.7.1.5.0 (Fan Present (1=other, 2=tachOutput, 3=spinDetect)
.1.3.6.1.4.1.232.6.2.6.7.1.6.0 (Fan Speed (1=other, 2=normal, 3=high)
.1.3.6.1.4.1.232.6.2.6.7.1.9.0 (Fan Condition (1=other, 2=ok, 3=degraded, 4=failed)

Temperature:
.1.3.6.1.4.1.232.6.2.6.8.1.2.0 (Temperature Sensor Index)
.1.3.6.1.4.1.232.6.2.6.8.1.3.0 (Temperature Sensor Locale (1=other, 2=unknown, 3=system, 4=systemBoard, 5=ioBoard, 6=cpu, 7=memory, 8=storage, 9=removable media, 10=power supply, 11=ambent, 12=chassis, 13=bridge card)
.1.3.6.1.4.1.232.6.2.6.8.1.7.0 (Threshold Type (1=other, 5=blowout, 9=caution, 15=critical, 16=noreaction)
.1.3.6.1.4.1.232.6.2.6.8.1.4.0 (Temperature Celsius)
.1.3.6.1.4.1.232.6.2.6.8.1.5.0 (TemperatureThreshold)
.1.3.6.1.4.1.232.6.2.6.8.1.6.0 (TemperatureCondition)

CPU:
.1.3.6.1.4.1.232.1.2.2.1.1.1 (CPU Index)
.1.3.6.1.4.1.232.1.2.2.1.1.3 (CPU Name)
.1.3.6.1.4.1.232.1.2.2.1.1.4 (CPU Speed in MHz)
.1.3.6.1.4.1.232.1.2.2.1.1.5 (CPU Step)
.1.3.6.1.4.1.232.1.2.2.1.1.6 (CPU status (1=unknown, 2=ok, 3=degraded, 4=failed, 5=disabled)
.1.3.6.1.4.1.232.1.2.2.1.1.15 (Number of enabled CPU cores)
.1.3.6.1.4.1.232.1.2.2.1.1.25 (Number of available CPU threads)
.1.3.6.1.4.1.232.1.2.2.1.1.26 (CPU power status (1=unknown, 2=Low Powered, 3=Normal Powered, 4=High Powered)

Logical Drives:
.1.3.6.1.4.1.232.3.2.3.1.1.2.0 (Logical Drive Index)
.1.3.6.1.4.1.232.3.2.3.1.1.1.0 (Logical Drive Controller)
.1.3.6.1.4.1.232.3.2.3.1.1.3.0 (Logical Drive Fault Tolerance (1=other, 2=none, 3=RAID 1/RAID 1+0 (Mirroring), 4=RAID 4 (Data Guard), 5=RAID 5 (Distributed Data Guard), 7=RAID 6 (Advanced Data Guarding), 8=RAID 50, 9=RAID 60, 10=RAID 1 ADM (Advanced Data Mirroring), 11=RAID 10 ADM (Advanced Data Mirroring with Striping))
.1.3.6.1.4.1.232.3.2.3.1.1.9.0 (Logical Drive Size in Mb)
.1.3.6.1.4.1.232.3.2.3.1.1.4.0 (Logical Drive Status (1=other, 2=ok, 3=Failed, 4=Unconfigured, 5=Recovering, 6=Ready Rebuild, 7=Rebuilding, 8=Wrong Drive, 9=Bad Connect, 10=Overheating, 11=Shutdown, 12=Expanding, 13=Not Available, 14=Queued For Expansion, 15=Multi-path Access Degraded, 16=Erasing, 17=Predictive Spare Rebuild Ready, 18=Rapid Parity Initialization In Progress, 19=Rapid Parity Initialization Pending, 20=No Access — Encrypted with No Controller Key, 21=Unencrypted to Encrypted Transformation in Progress, 22=New Logical Drive Key Rekey in Progress, 23=No Access — Encrypted with Controller Encryption Not Enabled, 24=Unencrypted To Encrypted Transformation Not Started, 25=New Logical Drive Key Rekey Request Received)
.1.3.6.1.4.1.232.3.2.3.1.1.11.0 (Logical Drive Condition (1=other, 2=ok, 3=degraded, 4=failed)

Drives:
.1.3.6.1.4.1.232.3.2.5.1.1.2.0 (Drive Index)
.1.3.6.1.4.1.232.3.2.5.1.1.5.0 (Drive Bay)
.1.3.6.1.4.1.232.3.2.5.1.1.64.0 (Drive Location)
.1.3.6.1.4.1.232.3.2.5.1.1.3.0 (Drive Vendor)
.1.3.6.1.4.1.232.3.2.5.1.1.51.0 (Drive Serial Number)
.1.3.6.1.4.1.232.3.2.5.1.1.45.0 (Drive Size in Mb)
.1.3.6.1.4.1.232.3.2.5.1.1.65.0 (Drive Link Rate (1=other, 2=1.5Gbps, 3=3.0Gbps, 4=6.0Gbps, 5=12.0Gbps))
.1.3.6.1.4.1.232.3.2.5.1.1.70.0 (Drive Current Temperature)
.1.3.6.1.4.1.232.3.2.5.1.1.71.0 (Drive Temperature Threshold)
.1.3.6.1.4.1.232.3.2.5.1.1.72.0 (Drive Maximum Temperature)
.1.3.6.1.4.1.232.3.2.5.1.1.6.0 (Drive Status (1=Other, 2=Ok, 3=Failed, 4=Predictive Failure, 5=Erasing, 6=Erase Done, 7=Erase Queued, 8=SSD Wear Out, 9=Not Authenticated)
.1.3.6.1.4.1.232.3.2.5.1.1.37.0 (Drive Condition (1=other, 2=ok, 3=degraded, 4=failed)
.1.3.6.1.4.1.232.3.2.5.1.1.9.0 (Drive Reference Time in hours)

iLO NIC:
.1.3.6.1.4.1.232.9.2.5.2.1.1 (iLO location)
.1.3.6.1.4.1.232.9.2.5.1.1.2 (iLO NIC model)
.1.3.6.1.4.1.232.9.2.5.1.1.4 (iLO NIC MAC)
.1.3.6.1.4.1.232.9.2.5.1.1.5 (iLO NIC IPv4)
.1.3.6.1.4.1.232.9.2.5.1.1.9 (iLO NIC speed)
.1.3.6.1.4.1.232.9.2.5.1.1.14 (iLO NIC FQDN)
.1.3.6.1.4.1.232.9.2.5.2.1.2 (Tx bytes)
.1.3.6.1.4.1.232.9.2.5.2.1.3 (Tx packets)
.1.3.6.1.4.1.232.9.2.5.2.1.6 (Tx discard packets)
.1.3.6.1.4.1.232.9.2.5.2.1.7 (Tx error packets)
.1.3.6.1.4.1.232.9.2.5.2.1.9 (Rx bytes)
.1.3.6.1.4.1.232.9.2.5.2.1.10 (Rx packets)
.1.3.6.1.4.1.232.9.2.5.2.1.13 (Rx discard packets)
.1.3.6.1.4.1.232.9.2.5.2.1.14 (Rx error packets)
.1.3.6.1.4.1.232.9.2.5.2.1.15 (Rx unknown packets)

Memory:
.1.3.6.1.4.1.232.6.2.14.13.1.1 (Memory Index)
.1.3.6.1.4.1.232.6.2.14.13.1.13 (Location)
.1.3.6.1.4.1.232.6.2.14.13.1.9 (Manufacturer)
.1.3.6.1.4.1.232.6.2.14.13.1.10 (Part Number)
.1.3.6.1.4.1.232.6.2.14.13.1.6 (Size in Kbytes)
.1.3.6.1.4.1.232.6.2.14.13.1.8 (Memory Technology)
.1.3.6.1.4.1.232.6.2.14.13.1.7 (Memory Type)
.1.3.6.1.4.1.232.6.2.14.13.1.19 (Memory status (1=other, 2=notPresent, 3=present, 4=good, 5=add, 6=upgrade, 7=missing, 8=doesNotMatch, 9=notSupported, 10=badConfig, 11=degraded, 12=spare, 13=partial)
.1.3.6.1.4.1.232.6.2.14.13.1.20 (Memory condition (1=other, 2=ok, 3=degraded, 4=degradedModuleIndexUnknown)

Обновление прошивки iLO 4 на HP серверах

На тесте обновлю iLO4 с прошивкой 1.13 (Nov 08 2012) на сервере HP ProLiant DL380p G8 до последней на данный момент версии 2.50 (Sep 23 2016).

И так, скачаем с официального сайта http://www.hp.com/support/iLO4 прошивку, выбрав например операционную систему Windows Server, так как в некоторых не отображается вкладка с прошивками «Микропрограммное обеспечение».

Скачанный архив распакуем, в нем должен находится файл прошивки с расширением *.bin, это как раз и есть прошивка.

Подключим кабель к порту iLO, откроем web-интерфейс iLO в браузере Internet Explorer или Edge, введем логин и пароль, слева в меню раскроем вкладку «Administration«, выберем «iLO Firmware«, нажмем кнопку «Обзор…» и укажем на файл прошивки, жмём «Upload» и ждем завершения процесса обновления.
После успешного обновления iLO автоматически перезапустится, на сервер это не повлияет, он будет работать беспрерывно.

Обновим страницу, возможно придется очистить кэш браузера и можем заходить уже в обновленный iLO.

Все.

Смотрите также:
Решение проблемы при обновлении iLO 3 «98% Receiving Image…»
Настройка iLO через hponcfg на HP серверах
Сброс пароля iLO через hponcfg на HP серверах

Смотрите видео как я обновлял iLO3 (процесс обновления почти аналогичен):

Изоляция портов на коммутаторе ZyXEL MES-3528

На тесте изолирую порты друг от друга, разрешив хождение трафика только на uplink (порт с которого приходит интернет), у меня он 25.

Подключимся к коммутатору и посмотрим текущую конфигурацию:

show running-config

Перейдем в режим конфигурирования:

configure

Изолируем необходимые порты, кроме uplink порта:

interface port-channel 1-24,26-28
vlan1q port-isolation
exit
exit

Сохраним конфигурацию:

write memory

Порты на которых прописана команда vlan1q port-isolation не видят другие порты с этой же командой, но видят порты без неё и CPU коммутатора. Порты без команды vlan1q port-isolation видят порты с ней и без неё.