LinuxCamp | DevOps
@linuxcamp_tg
5 34 2.5K
• проверять локальную кодовую базу
• сканировать GitHub-репозиторий
• тестировать уже поднятое web-приложение
• искать XSS, SSRF, SQL injection, auth bypass, IDOR и другие баги
• генерировать отчёт и рекомендации по исправлению
• запускаться в CI/CD на pull request
curl -sSL https://strix.ai/install | bash
export STRIX_LLM="openai/gpt-5.4"
export LLM_API_KEY="your-api-key"
strix --target ./app-directory
strix --target https://github.com/org/repo
strix --target https://your-app.com
strix -n --target ./ --scan-mode quick
Интересно, если дать нейронке задачу - перепиши весь код ядра на Rust, она справится?))
blocked — ждёт ввода или approval
working — выполняет задачу
done — закончил работу
idle — завершён и просмотрен
curl -fsSL https://herdr.dev/install.sh | sh
brew install herdr
herdr
ctrl+b, затем v split pane
ctrl+b, затем c new tab
ctrl+b, затем w switch workspace
ctrl+b, затем q detach
кто заходил, когда заходил и что менял?
last
lastb
who
w
grep "sshd" /var/log/auth.log
grep "sshd" /var/log/secure
cat ~/.bash_history
echo 'export HISTTIMEFORMAT="%F %T "' >> ~/.bashrc
source ~/.bashrchistory будет показывать время выполнения команд:
history
stat /etc/nginx/nginx.conf
find /etc/nginx -type f -mtime -1 -ls
find /etc/nginx -type f -mmin -60 -lsstat и find покажут время изменения, а не имя пользователя, который это сделал. Если нужно именно кто изменил файл, заранее включают auditd:
apt install auditd
auditctl -w /etc/nginx/nginx.conf -p wa -k nginx_config
ausearch -k nginx_configlast, auth.log, history, stat и find помогают быстро понять, что происходило на сервере. Но если нужно точно знать, кто менял важные файлы, лучше заранее включить auditd. Без него Linux часто покажет когда файл изменили, но не всегда покажет кем.
Каждый раз, когда программа читает файл, открывает сокет или печатает строку в терминал, она не делает это сама. Она просит об этом ядро. Механизм этой просьбы называется системным вызовом syscall.
int fd = open("file.txt", O_RDONLY); // открыть файл
read(fd, buf, 1024); // прочитать данные
write(1, "hello\\n", 6); // записать в stdout
close(fd); // закрыть
mov rax, 1 ; номер вызова write
mov rdi, 1 ; fd = stdout
mov rsi, msg ; адрес буфера
mov rdx, 6 ; длина
syscall ; прыжок в kernel space
strace ./program # все вызовы подряд
strace -c ls # сводка с подсчётом и таймингами
services:
db-backup:
image: docker.io/tiredofit/db-backup:latest
volumes:
- ./backups:/backup
environment:
- DB01_TYPE=pgsql
- DB01_HOST=postgres
- DB01_NAME=app
- DB01_USER=app
- DB01_PASS=secret
- DEFAULT_BACKUP_INTERVAL=1440
- DEFAULT_COMPRESSION=ZSTD
DB01, DB02, DB03 — это разные backup job’ы. Так можно одним контейнером бэкапить несколько баз.
docker exec -it db-backup backup-now
docker exec -it db-backup backup01-now
cargo install socktop
cargo install socktop_agent
socktop_agent --port 3000
socktop ws://SERVER_IP:3000/ws
socktop --demo
SOCKTOP_TOKEN=changeme socktop_agent --enableSSL --port 8443
socktop --tls-ca /path/to/cert.pem \
"wss://SERVER_IP:8443/ws?token=changeme"
— Установка, оплата, настройка
— MCP, субагенты, скиллы, команды
— git/github, x100 к скорости работы через "Git Worktrees"
— Деплой на выделенный сервер (как делают взрослые дяди):
покупка домена, аренда сервера, настройка DNS, сборка через dokploy
rm -rf /
git reset --hard
kubectl delete namespace prod
cargo install shellfirm
shellfirm init
git reset --hard