Сніпети

На цій сторінці зібрано скрипти та конфігураційні приклади, які не підходять для окремих статей. Деякі з них — це твіки або однорядкові HOWTO, інші — просто цікаві речі для запуску.

Є багато причин створити навантаження на CPU, одна з менш серйозних — гратися з тригером heartbeat:

cat /dev/urandom | gzip > /dev/null

Примітка: Цей скрипт стискає нескінченний потік випадкових бітів і відкидає результат. Рівень стиснення змінити не можна, тому можливо доведеться запустити кілька екземплярів скрипта для підвищення середнього навантаження.

Зазвичай для цього використовують команди top або ps, але версія з BusyBox може обрізати довгі команди, щоб вмістити їх у ширину термінала.

ps w

або

cat /proc/<PID>/cmdline

Примітка: Замініть <PID> на ідентифікатор процесу.

Кольори

Редагуйте змінну PS1 у файлі /etc/profile:

export PS1='\[\e[1;31m\]\u@\h:\w\$ \[\e[0m\]'

Це дає червоний промпт (корисно для root-користувача). Інші користувачі можуть мати, наприклад, зелений. Докладніше — тут.

Сесія Screen

Корисно показувати назву сесії screen, якщо ви в ній. Порада: додайте кольорів. Приклад для сесії pts-0:

local SCREEN_SESSION_NAME=$(screen -ls | sed -n 's|[^a-z]*[0-9][0-9]*\.\([a-zA-Z][a-zA-Z0-9-]*\).*Attached.*|/\1|p')
export PS1="\u@\h${SCREEN_SESSION_NAME}:\w\\$ "

Червоне тло, якщо попередня команда завершилась з помилкою

export PS1="\$([ \$? -ne 0 ] && echo \\\[\\\e[41m\\\])\u@\h:\w\\$\[\e[0m\] "
cat /etc/config/some.conf | nc paste.dyndns.org 1234
devstatus br-lan
cat /sbin/devstatus
#!/bin/sh
. /usr/share/libubox/jshn.sh
DEVICE="$1"
 
[ -n "$DEVICE" ] || {
	echo "Usage: $0 <device>"
	exit 1
}
 
json_init
json_add_string name "$DEVICE"
ubus call network.device status "$(json_dump)"

Як видно, використовується бібліотека jshn.

[ -s /var/state/wireless ] && wifi down || wifi up

Якщо ви використовуєте trunk, корисно мати локальну копію пакунків, бо нові версії можуть порушити сумісність з ядром:

wget -r -np http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/

Архітектура — ar71xx. Знадобиться ~300 MB вільного місця.

ECC добре підходить для пристроїв із низькою продуктивністю. Наприклад, ключ RSA на 15360 біт потребує 9.1 с для входу, а ECDSA на 521 біт — лише 1.7 с. Різниця менш помітна при коротших ключах. Для використання:

  1. скомпілюйте libopenssl без опції NO-EC
  2. зберіть openssh-server і openssh-keygen із цією бібліотекою
  3. ssh-keygen -t ecdsa -b 521

Якщо зберегти список пакунків перед оновленням, можна швидко встановити все назад за допомогою скрипта з цієї теми.

Спочатку встановіть hdparm. Потім знайдіть пристрій, зазвичай це /dev/sda1 або подібне:

opkg update && opkg install hdparm
hdparm -t /dev/sda1

Див. також Бенчмарки USB і Продуктивність файлових систем.

Миготіння при активності у тунелі Hurricane Electric 6in4. Приклад із файлу /etc/config/system:

config 'led' '6in4_led'
        option 'name' '6in4'
        option 'sysfs' 'tl-wr1043nd:green:qss'
        option 'trigger' 'netdev'
        option 'mode' 'link tx rx'
        option 'dev' '6in4-wan6'

Примітка: детальна конфігурація — тут.

Усі зміни виконуються в /etc/profile. Скрипти додаються після cat /etc/banner.

Для користувачів screen. Приклад виводу:

3 Screen sessions: pts-0, snort, iperf

Скрипт:

local screenlabel=$(screen -ls | sed -n 's|^\([0-9][0-9]*\) Socket.*| \1 Screen sessions: |p')
screen -ls | sed -n 's|[^a-z]*[0-9][0-9]*\.\([a-zA-Z][a-zA-Z0-9-]*\).*|\1|p' | sed -e "s|^|${screenlabel}|" -e :a -e N -e 's|\n|, |' -e ta

Примітка: змінна screenlabel містить кількість сесій і текст. Якщо це не потрібно, можна спростити.

Менш корисний скрипт, але все ж:

Entropy: 143/4096
echo " Entropy:" $(cat /proc/sys/kernel/random/entropy_avail)/$(cat /proc/sys/kernel/random/poolsize)
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • Last modified: 2025/05/31 21:23
  • by vazaz