πŸ–₯️ 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. Той намира удовлетворение в това да помага на хората да решават и най-сложните технически проблеми. Сегашната му цел е да пише лесни за следване статии, така че подобни проблеми изобщо да не възникват.

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

×