Безопасное сжатие
Программы сжатия удаляют исходный файл по умолчанию.Мне это не нравится.
alias gzip='gzip --keep'
alias bzip2='bzip2 --keep'
alias xz='xz --keep'
alias lzma='lzma --keep'
Многострочная подсказка
tag() {
TAG="${TAG} [$1]" exec zsh
}
reset_tags() {
TAG='' exec zsh
}
color='green'
if [ "${USER}" = 'root' ]; then
color='red'
fi
export PS1="${TAG} %B%F{yellow} *** %F{blue}%~\
%F{yellow}%(1j.[%j] .)%F{red}%(?..(%?%) )%F{${color}}%n@%m %F{blue}%# %f%b"
export RPS1='%B%F{blue}%D{%Y-%m-%d} %F{green}%D{%H:%M:%S}'
export PS2='%B%F{red}%n@%m%k %B%F{blue}%_> %b%f%k'
unset color
Можно отобразить "теги" с переменными среды. Пример:
tag 'DONT SHTUDOWN!!'
reset_tags
Код по крайней мере частично основан на этом.
Настройки истории
dont_log() {
HISTFILE="/dev/null" TAG="${TAG} %B%F{red}[LOGGING DISABLED]" zsh
}
if [ "${HISTFILE}" != '/dev/null' ]; then
# history
export HISTFILE="${HOME}/.zsh/history"
export HISTSIZE="4096"
export SAVEHIST="4096"
# Don't overwrite, append!
setopt APPEND_HISTORY
# Write after each command
# setopt INC_APPEND_HISTORY
# Killer: share history between multiple shells
setopt SHARE_HISTORY
# If I type cd and then cd again, only save the last one
setopt HIST_IGNORE_DUPS
# Even if there are commands inbetween commands that are the same, still only save the last one
setopt HIST_IGNORE_ALL_DUPS
# Pretty Obvious. Right?
setopt HIST_REDUCE_BLANKS
# If a line starts with a space, don't save it.
setopt HIST_IGNORE_SPACE
setopt HIST_NO_STORE
# When using a hist thing, make a newline show the change before executing it.
setopt HIST_VERIFY
# Save the time and how long a command ran
setopt EXTENDED_HISTORY
setopt HIST_SAVE_NO_DUPS
setopt HIST_EXPIRE_DUPS_FIRST
setopt HIST_FIND_NO_DUPS
fi
dstat
.
dstat -tif 60
Чтобы перечислить все прерывания (с более чем 10 в / proc / stat
)
dstat -tf --int24 60
То же, но с использованием / proc / interrupts
, поэтому включите такие вещи, как LOC
, PMI
, RES
...
Вы также можете выбрать список тех, которые вам нужны:
$ dstat -t --int24 -I23,LOC,RES 5
----system---- ----interrupts---
time | 23 LOC RES
21-12 16:30:23| 2 489 52
21-12 16:30:28| 30 593 6
21-12 16:30:30| 37 929 7
См. Также - top-int
для отслеживания наиболее активного прерывания:
$ dstat -t --top-int
----system---- ---most-frequent----
time | interrupt
21-12 16:33:21|5242880-edge enp10s0 56
21-12 16:33:22|5242880-edge enp10s0 68
21-12 16:33:23|5242880-edge enp10s0 4
21-12 16:33:24|5242880-edge enp10s0 3
21-12 16:33:25|5242880-edge enp10s0 61
21-12 16:33:26|5242880-edge enp10s0 11
21-12 16:33:27|512000-edge ahci[0000:00:1f.2] 5
21-12 16:33:28|5242880-edge enp10s0 52
21-12 16:33:29|5242880-edge enp10s0 20
21-12 16:33:30|32768-edge i915 57
mpstat (1) N M -I
позволяет сделать это с указанным интервалом опроса и количеством отчетов.
N
- интервал опроса в секундах. M
- количество отчетов. -I
, которая принимает ряд параметров, предназначена для «Сообщать статистику прерываний». Кроме того,
intr / s
Показывает общее количество прерываний, получаемых ЦП или ЦП в секунду.
С ключевым словом CPU отображается количество каждого отдельного прерывания, полученного CPU или CPU за секунду. Прерывания перечислены в файле / proc / interrupts.
Для сервера с большим количеством ЦП я нашелhttps://github.com/lanceshelton/irqstatочень полезным. Он показывает, где происходят прерывания в реальном времени:
Sun Oct 21 20:16:09 2018
IRQs / 5 second(s)
IRQ# TOTAL NODE0 NODE1 NAME
35 38060 38060 0 IR-PCI-MSI 2621440-edge enp5s0-rx-0
36 19853 19853 0 IR-PCI-MSI 2621441-edge enp5s0-tx-0
34 311 311 0 IR-PCI-MSI 512000-edge ahci[0000:00:1f.2]
29 105 105 0 IR-PCI-MSI 2097152-edge enp4s0-rx-0
42 0 0 0 IR-PCI-MSI 77824-edge ioat-msix
43 0 0 0 IR-PCI-MSI 79872-edge ioat-msix
49 0 0 0 IR-PCI-MSI 67180544-edge ioat-msix
52 0 0 0 IR-PCI-MSI 67186688-edge ioat-msix
53 0 0 0 IR-PCI-MSI 67188736-edge ioat-msix
48 0 0 0 IR-PCI-MSI 67178496-edge ioat-msix
Да, есть irqtop , который является частью не слишком старых util -linux релизов. Например, Fedora 33 — это первый выпуск Fedora, в котором он есть.
В последнем выпуске util -linux irqtop также может отображать программные прерывания (, ср.--softirq
).
Пример:
$ irqtop -s delta
irqtop | total: 182243195 delta: 163991 | example.org | 2021-05-09 23:39:32+02:00
IRQ TOTAL DELTA NAME
63 14890381 35488 IR-PCI-MSI 3145728-edge eno3-TxRx-0
64 14661318 34614 IR-PCI-MSI 3145729-edge eno3-TxRx-1
58 29720656 23291 IR-PCI-MSI 2623488-edge eno2-TxRx-0
61 29676645 23268 IR-PCI-MSI 2623491-edge eno2-TxRx-3
60 29676091 23266 IR-PCI-MSI 2623490-edge eno2-TxRx-2
59 29686036 23259 IR-PCI-MSI 2623489-edge eno2-TxRx-1
LOC 5524971 755 Local timer interrupts
52 39316 14 IR-PCI-MSI 2621443-edge eno1-TxRx-3
CAL 12209964 12 Function call interrupts
50 38809 6 IR-PCI-MSI 2621441-edge eno1-TxRx-1
49 45351 4 IR-PCI-MSI 2621440-edge eno1-TxRx-0
51 39170 2 IR-PCI-MSI 2621442-edge eno1-TxRx-2