🖥️ Bash скрипт за начален setup след инсталация на Ubuntu Server

Bash скрипт за начален setup след инсталация на Ubuntu Server

След инсталиране на нов Ubuntu Server, често следва серия от повтарящи се ръчни действия – инсталиране на инструменти, настройка на .vimrc и др.
Този скрипт автоматизира основните стъпки и подготвя сървъра за работа, включително поддръжка на кирилица във Vim.


🎯 Какво прави скриптът:

  • Инсталира полезни инструменти (vim, curl, git, wget, htop, nmap, и др.)
  • Създава .vimrc файл с поддръжка на UTF-8 и кирилица (cp1251, koi8-r)
  • Активира подсветка и удобна индентация за писане на код

📜 Скрипт: postinstall.sh

#!/bin/bash

echo "Настройвам часовата зона..."
sudo timedatectl set-timezone "Europe/Sofia"

echo "Инсталирам полезни инструменти..."
sudo apt update
sudo apt install -y vim curl git wget pwgen htop nmap whois net-tools

echo "Създавам .vimrc с настройки за кирилица и кодиране..."
cat <<EOF > ~/.vimrc
set encoding=utf-8
set fileencoding=utf-8
set fileencodings=utf-8,cp1251,koi8-r

syntax on
set autoindent
set tabstop=4
set shiftwidth=4
set expandtab
EOF

echo "Готово! Системата е подготвена за работа."

🛠️ Как да го използвам?

  1. Създайте файл на сървъра:
nano postinstall.sh

2. Поставете съдържанието на скрипта.

3. Направете го изпълним:

chmod +x postinstall.sh

4. Стартирайте:

./postinstall.sh

💬 Заключение

Този скрипт е чудесна отправна точка за всеки нов Ubuntu Server. Можете лесно да го разширите с SSH настройки, hostname, timezone и други персонални предпочитания.

Ето някои предложения:

1. Системни инструменти и утилити

  • tmux или screen – за сесии, които продължават да работят в background.
  • iotop – мониторинг на дисков I/O.
  • iftop – мониторинг на мрежовия трафик.
  • dstat – комбиниран мониторинг на системата.
  • unzip / zip – работа с архиви.
  • tree – показва файловата структура в дървовиден формат.
  • ncdu – анализ на дисковото пространство.
  • rsync – ефективно копиране на файлове.
  • jq – работа с JSON данни от командния ред.
  • neofetch – показва основна информация за системата (по-красив изглед).

2. Мрежови инструменти

  • iputils-ping – ping команда (понякога не е инсталирана по подразбиране).
  • dnsutils – съдържа dignslookup и други DNS инструменти.
  • traceroute – проследяване на мрежовия път.
  • mtr-tiny – комбинация от ping и traceroute.
  • telnet – за тестване на портове (старо, но полезно).
  • tcpdump – мрежов анализатор.
  • ncat или socat – напреднали мрежови инструменти.

3. Сигурност

  • fail2ban – защита срещу brute force атаки.
  • ufw – Uncomplicated Firewall (лесен firewall).
  • openssh-server – ако не е инсталиран по подразбиране.
  • sudo – проверете дали е конфигуриран правилно.
  • logwatch – анализ на логове.
  • rkhunter / lynis – инструменти за проверка на сигурността.

4. Системен мониторинг и логване

  • sysstat – събира статистики за системата (sariostat и др.).
  • glances – мониторинг на системата (по-модерен алтернативен на htop).
  • prometheus-node-exporter – ако използвате Prometheus за мониторинг.

5. Разработка и автоматизация

  • python3 / python3-pip – ако ще използвате Python скриптове.
  • ansible – за конфигурационен мениджмънт (ако ще го използвате за автоматизация).
  • docker.io – ако ще използвате Docker контейнери.
  • build-essential – ако ще компилирате програми (съдържа gccmake и др.).

6. Други полезни пакети

  • mlocate – за бързо търсене на файлове (updatedb + locate).
  • bash-completion – автоматично допълване в терминала.
  • zsh + oh-my-zsh – ако предпочитате Zsh вместо Bash.
  • ack / silversearcher-ag – бързо търсене в текстови файлове.

Федя Серафиев

Федя Серафиев

Федя Серафиев e собственик на уебсайта urocibg.eu. Той намира удовлетворение в това да помага на хората да решават и най-сложните технически проблеми. Сегашната му цел е да пише лесни за следване статии, така че подобни проблеми изобщо да не възникват.

Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу:

×