#!/bin/bash
echo "Je dôležité si dať drink. Tvoj drink na teraz je:"
# Generate a random number (0 or 1)
random_choice=$((RANDOM % 2))
if [ "$random_choice" -eq 0 ]; then
echo "káva! ☕ Užívaj!"
else
echo "Čaj! 🍵 Užívaj!"
fi
Kategória: Scriptovanie
UniFi Controller na Ubuntu 24.04

UniFi Controller je softvérový nástroj. Slúži k centrálnej správe, konfigurácií a monitorovaniu sieťových zariadení rady UniFi, ako sú prístupové body (AP), switche, routre a ďalšie zariadenia v sieti.
Je možné ho nainštalovať na :
- Windows Server 2016/2019
- Linux
- Pre novšie systémy macOS
Minimálne požiadavky
CPU | Dual-core procesor (1 GHz alebo viac) |
RAM | 2 GB (pre malé inštalácie; doporučujú 4 GB) |
Disk | 10 GB volného miesta (pre logy a zálohy) |
Sieť | 1 Gbps pripojenie (doporučuje sa) |
V tomto článku som robil inštaláciu na Ubuntu 22.04 cez VMware
Ako prvé pomocou textového editora napíšeme skript napr. unifi.sh
nano unifi.sh
Vložíme daný skript
#!/bin/sh
# set up repos
echo 'deb [ arch=amd64,arm64 ] https://www.ui.com/downloads/unifi/debian staubiquiti' > /etc/apt/sources.list.d/100-ubnt-unifi.list
echo 'deb [trusted=yes] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-o.6 multiverse' > /etc/apt/sources.list.d/mongodb-org-3.6.list
# for libssl1
echo 'deb http://security.ubuntu.com/ubuntu focal-security main' > /etc/apt/ces.list.d/old-ubuntu.list
curl -sO https://dl.ui.com/unifi/unifi-repo.gpg --output-dir /etc/apt/trusteg.d/
curl -sO https://www.mongodb.org/static/pgp/server-3.6.asc --output-dir /etc/trusted.gpg.d/
apt update
apt install -y unifi
Ten uložíme
Teraz mu dáme práva, aby sa mohol spustiť
chmod +x unifi.sh
Teraz spustíme skript
./unifi.sh
Keď všetko zbehne otvorte webový prehliadač zadajte IP adresu daného servera s portom 8443
https://X.X.X.X/8443
Upgrage Unifi Controllera
Pri upgrade controllera, je vhodné si urobiť si urobiť snapshot
sudo apt update && sudo apt upgrade -y
sudo apt install apt-transport-https ca-certificates gnupg -y
wget -qO - https://dl.ui.com/unifi/unifi-repo.gpg | sudo gpg --dearmor -o /usr/share/keyrings/unifi-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/unifi-archive-keyring.gpg] https://www.ui.com/downloads/unifi/debian stable ubiquiti" | sudo tee /etc/apt/sources.list.d/unifi.list
sudo apt update
sudo apt install --only-upgrade unifi
priapadne overiť, či beži
sudo systemctl status unifi
Ak náhodou skúste ho spustiť manuálne
sudo systemctl start unifi
Prípadný troubleshooting
tail -f /var/log/unifi/server.log
Je potrebné urobiť aj update java
sudo apt install openjdk-11-jre -y
Skript na generovanie mien

So ženou sa nevieme dohodnúť na vymyslení mena pre naše prvé dieťa, tak som sa rozhodol, že napíšem skript.
Ak sa aj Vy budete chcieť zahrať a zasmiať, tak tu posielam šablónu
Ako prvé musíme vytvoriť skript .sh napr. deti.sh
nano deti.sh
#!/bin/bash
# Zoznam mien
chlapci=("Adam" "Adrián" "Ahmed" "Branislav" "Ciril"
"Denis" "Dobroslav" "Dušan" "Daniel" "Ervín"
"Evžen" "Emil" "Emanuel" "Erik"
"Gustáv" "Gabriel" "Hasan" "Henrich" "Ivan" "Kristián"
"Miloš" "Marcel" "Micha"
"Tomáš" "Timotej" "Viktor" "Zdeno" "Bacigáľ")
dievcata=("Alžbeta" "Anna" "Aneta" "Barbara" "Barbora"
"Brigita" "Denisa" "Eva" "Erika" "Gabriela" "Henrieta"
"Ivana" "Janka" "Kristína" "Lenka" "Mária" "Nina"
"Oxana" "Petra," "Róberta" "Sabina" "Slávka" "Simona")
# Funkcia na generovanie mena
function vygeneruj_meno {
echo "Zvoľ pohlavie:"
echo "1. Chlapec"
echo "2. Dievča"
read -p "Zadaj číslo (1 alebo 2): " volba
if [[ "$volba" == "1" ]]; then
meno=${chlapci[RANDOM % ${#chlapci[@]}]}
echo "Vygenerované chlapčenské meno: $meno"
elif [[ "$volba" == "2" ]]; then
meno=${dievcata[RANDOM % ${#dievcata[@]}]}
echo "Vygenerované dievčenské meno: $meno"
else
echo "Neplatná voľba, zvoľ 1 alebo 2."
fi
}
# Hlavný cyklus
while true; do
vygeneruj_meno
read -p "Chceš vygenerovať ďalšie meno? Áno = a, Nie = n (a/n): " odpoved
if [[ "$odpoved" != "a" ]]; then
echo "Ďakujeme za používanie generátora mien. Dovidenia!"
break
fi
done
Dáme oprávnenia na spustenie skriptu
chmod +x deti.sh
Spustíme skript
./deti.sh


Keď zvolíme a, zopakuje sa slučka
Keď zvolíme 2, tak sa začnú generovať dievčenské mená

Keď stlačíte n, tak program sa automaticky ukončí a vypíše hlášku:
Ďakujeme za používanie generátora mien. Dovidenia!

Inštalácia WordPress pomocou skriptu

Vytvoríme textový súbor
nano wordpress.sh
Do neho vložíme a uložíme tento text
#!/bin/bash
# Inštalácia MySQL/MariaDB
echo "Inštalácia MySQL/MariaDB..."
sudo apt update
sudo apt install -y mysql-server
# Zabezpečenie MySQL/MariaDB
echo "Zabezpečenie MySQL/MariaDB..."
sudo mysql_secure_installation
# Inštalácia Apache (voliteľné) a PHP
echo "Inštalácia Apache a PHP..."
sudo apt install -y apache2
sudo apt install -y php libapache2-mod-php php-mysql
# Inštalácia WordPress
echo "Inštalácia WordPress..."
wget -c http://wordpress.org/latest.tar.gz
tar -xzvf latest.tar.gz
sudo mv wordpress /var/www/html/
sudo chown -R www-data:www-data /var/www/html/wordpress
sudo chmod -R 755 /var/www/html/wordpress
cp /var/www/html/wordpress/wp-config-sample.php /var/www/html/wordpress/wp-config.php
sudo sed -i "s/database_name_here/wordpress/g" /var/www/html/wordpress/wp-config.php
sudo sed -i "s/username_here/wpuser/g" /var/www/html/wordpress/wp-config.php
sudo sed -i "s/password_here/password/g" /var/www/html/wordpress/wp-config.php
# Vytvorenie databázy pre WordPress
echo "Vytvorenie databázy pre WordPress..."
sudo mysql -u root -p -e "CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;"
sudo mysql -u root -p -e "CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'password';"
sudo mysql -u root -p -e "GRANT ALL ON wordpress.* TO 'wpuser'@'localhost';"
sudo mysql -u root -p -e "FLUSH PRIVILEGES;"
# Nastavenie Apache
echo "Nastavenie Apache..."
sudo a2enmod rewrite
sudo systemctl restart apache2
echo "Inštalácia WordPress bola úspešne dokončená."
Textový súbor uložte
Udeľte skriptu práva na spustenie:
chmod +x wordpress.sh
Spustite skript s príkazom --install
ako sudo, aby mohol vykonávať inštaláciu a nastavenia:
sudo ./wordpress.sh --install
Konfigurácia databázy WordPressu: Ak už máte nainštalované závislosti a chcete iba konfigurovať databázu, spustite skript s príkazom --configure
sudo ./wordpress.sh --configure
Po zbehnutí choďte na webový prehliadač a zadajte IP adresu v tvare
X.X.X.X/wordpress
Zadanie skriptu
Napíš bash script, ktorý z výpisu spĺňa formát riadku alebo STDIN:
<server>: (<pocet> dbs)<disk> <total>G <used>G <free>G <perc>% <mount>
pre vypinac –full:
vypisu obsadenosti databazovych serverov vyberie tie, ktore maju zaplneny priestor na viac ako 75%
pre vypinac –count:
vypise pocet suborov
pre vypinac –validate:
vypise riadky, ktore splnaju strukturu do STDOUT a nevalidne riadky do STDERR
pre vypinac -h:
vypise help
Sprav script, tak aby vedel čítať súbor ako parameter, teda: $ ./script.sh <subor> ale zároveň aj ako STDIN: $ ./script.sh < cat subor
ukážkový súbor:
mysql1: (1016 dbs)/dev/xvda 62G 30G 29G 52% /
mysql2: (866 dbs)/dev/xvda 71G 36G 32G 54% /
mysql3: (1051 dbs)/dev/xvda 86G 43G 43G 50% /
mysql4: (648 dbs)/dev/sda1 58G 30G 25G 56% /
mysql5: (133 dbs)/dev/sda1 69G 68G 1.5G 98% /
mysql6: (1147 dbs)/dev/sda1 67G 43G 25G 64% /
mysql7: (705 dbs)/dev/sda1 67G 35G 30G 54% /
mysql8: (274 dbs)/dev/xvda 45G 29G 15G 67% /
mysql9: (222 dbs)/dev/xvda1 32G 18G 14G 56% /
mysql10: (289 dbs)/dev/xvda1 42G 23G 19G 55% /
mysql11: (1163 dbs)/dev/xvda1 37G 21G 16G 57% /
mysql12: (207 dbs)/dev/xvda 55G 32G 23G 59% /
mysql13: (175 dbs)/dev/xvda 32G 18G 13G 59% /
mysql14: (182 dbs)/dev/xvda 50G 28G 22G 57% /
mysql15: (188 dbs)/dev/xvda 30G 17G 12G 59% /
mysql16: (138 dbs)/dev/xvda 40G 34G 6.4G 84% /
mysql17: (178 dbs)/dev/xvda 40G 24G 17G 60% /
Vytvoríme si súbor
nano zadanieskriptu.sh
Napíšeme skript
#!/bin/bash
print_help() {
echo "Usage: $0 [--full|--count|--validate|-h] [file]"
echo "Options:"
echo " --full Display database servers with more than 75% disk usage."
echo " --count Count the number of lines in the input."
echo " --validate Validate the input format. Valid lines to STDOUT, invalid to STDERR."
echo " -h Display this help message."
}
process_input() {
count=0
while IFS= read -r line; do
if [[ $1 == "--full" ]]; then
if echo "$line" | grep -qP '^[^:]+: \([0-9]+ dbs\)[^ ]+ [0-9]+G [0-9]+G [0-9\.]+G [0-9]+% .+'; then
perc=$(echo "$line" | grep -oP ' ([0-9]+)% ' | grep -oP '[0-9]+')
if (( perc > 75 )); then
echo "$line"
fi
fi
elif [[ $1 == "--count" ]]; then
count=$((count+1))
elif [[ $1 == "--validate" ]]; then
if echo "$line" | grep -qP '^[^:]+: \([0-9]+ dbs\)[^ ]+ [0-9]+G [0-9]+G [0-9\.]+G [0-9]+% .+'; then
echo "$line"
else
echo "$line" >&2
fi
fi
done < "${2:-/dev/stdin}"
if [[ $1 == "--count" ]]; then
echo "$count"
fi
}
if [[ $1 == "-h" ]]; then
print_help
exit 0
elif [[ $1 == "--full" || $1 == "--count" || $1 == "--validate" ]]; then
process_input "$1" "$2"
else
print_help
exit 1
fi
Uložíme
Vytvoríme ďalší textový súbor
nano datafile.txt
Vložíme hodnoty
mysql1: (1016 dbs)/dev/xvda 62G 30G 29G 52% /
mysql2: (866 dbs)/dev/xvda 71G 36G 32G 54% /
mysql3: (1051 dbs)/dev/xvda 86G 43G 43G 50% /
mysql4: (648 dbs)/dev/sda1 58G 30G 25G 56% /
mysql5: (133 dbs)/dev/sda1 69G 68G 1.5G 98% /
mysql6: (1147 dbs)/dev/sda1 67G 43G 25G 64% /
mysql7: (705 dbs)/dev/sda1 67G 35G 30G 54% /
mysql8: (274 dbs)/dev/xvda 45G 29G 15G 67% /
mysql9: (222 dbs)/dev/xvda1 32G 18G 14G 56% /
mysql10: (289 dbs)/dev/xvda1 42G 23G 19G 55% /
mysql11: (1163 dbs)/dev/xvda1 37G 21G 16G 57% /
mysql12: (207 dbs)/dev/xvda 55G 32G 23G 59% /
mysql13: (175 dbs)/dev/xvda 32G 18G 13G 59% /
mysql14: (182 dbs)/dev/xvda 50G 28G 22G 57% /
mysql15: (188 dbs)/dev/xvda 30G 17G 12G 59% /
mysql16: (138 dbs)/dev/xvda 40G 34G 6.4G 84% /
mysql17: (178 dbs)/dev/xvda 40G 24G 17G 60% /
Nastavíme práva na spustenie:
chmod +x zadanieskriptu.sh
Spustíme script
./zadanieskriptu.sh --full datafile.txt
Výsledok
mysql5: (133 dbs)/dev/sda1 69G 68G 1.5G 98% /
mysql16: (138 dbs)/dev/xvda 40G 34G 6.4G 84% /
Rozšírenie disku Vcenter + Ubuntu
Označťte si server na ktorom, chcete rozšíriť Disk
Kliknite na Actions

Edit Settings

Add new device

Zvoľte hardisk
Objaví sa Vám Hardisk s kapacitou 25 GB, samozrejme, môžetet kedykoľvek zmeniť
Kliknite na OK
Teraz sa prostredníctvom ssh pripojte na daný server a na ňom vytvorte textový súbor napr:
nano extend_disk.sh
Do neho napíšte tento skript
#!/bin/bash
# Check current disk sizes
echo "Current disk sizes:"
sudo fdisk -l /dev/sda
sudo fdisk -l /dev/sdb
# Extend logical volume
echo "Extending logical volume..."
# Add sdb to volume group ubuntu-vg (assuming sdb is not partitioned)
sudo vgextend ubuntu-vg /dev/sdb
# Extend logical volume ubuntu-lv to use all available space
sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
# Resize the filesystem
echo "Resizing filesystem..."
# For ext4 filesystems
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
# OR for XFS filesystems
# sudo xfs_growfs /dev/ubuntu-vg/ubuntu-lv
echo "Logical volume extended and filesystem resized successfully."
Daný dokument uložte
Pred spustením skriptu je vhodne si pomocou príkazu lsblk zistiť, ako sa volaju disky napr.
- sda
- sdb
- sdc
V tomto prípade nemusíme meniť skript, ak by sa disky volali inak, tak ich musíme v skripúte upraviť
upravovali by sa tieto riadky
sudo fdisk -l /dev/sda
sudo fdisk -l /dev/sdb
sudo vgextend ubuntu-vg /dev/sdb
lsblk

Teraz napíšte 2 príkay
sudo chmod +x extend_disk.sh
sudo ./extend_disk.sh
Úspešné rozšírenie disku bude vyzerať následovne

