Dynamiczne nazwy zakładek w Tmuxie z SSH i hostname
Chcesz, aby Twoje zakładki (okna) w Tmuxie automatycznie pokazywały hostname serwera, do którego się logujesz przez SSH? A po wylogowaniu wracały do nazwy lokalnego hosta? Ten poradnik pokaże Ci, jak to skonfigurować krok po kroku.
1. Konfiguracja Tmux – ~/.tmux.conf
W pliku konfiguracyjnym Tmuxa ustaw domyślną komendę startową na specjalny plik Bash (.bash_tmux), który załatwi całą magię.
Ten plik wykonuje się przy każdym starcie okna Tmux. Ustawia nazwę okna na hostname oraz nadpisuje polecenie ssh, aby aktualizowało zakładkę przy połączeniu i po rozłączeniu.
.bash_tmux
Shell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/bin/bash
# ~/.bash_tmux
# Custom Bash init file for Tmux sessions with dynamic tab naming
# Override the default ssh command to dynamically rename the Tmux window
ssh(){
if[-n"$TMUX"];then
# Loop through arguments to find the target host (first non-flag argument)
forarg in"$@";do
if[["$arg"!=-*]];then
if[["$arg"==*@*]];then
host="${arg#*@}"# extract host from user@host
else
host="$arg"
fi
break
fi
done
# Strip any trailing junk or whitespace
host="$(echo "$host" | cut -d' ' -f1)"
# Rename the Tmux window to the SSH target
[-n"$host"]&&tmux rename-window"$host"
# Save the local hostname to restore later
local_host="$(hostname -s)"
# Run the actual SSH command
commandssh"$@"
# Restore the original window name after logout
tmux rename-window"$local_host"
else
# Not in Tmux — just run ssh normally
commandssh"$@"
fi
}
# Load the user's regular bash configuration
source~/.bashrc
# On shell start, if in Tmux, set the window name to the current hostname
if[-n"$TMUX"];then
tmux rename-window"$(hostname -s)"
fi
3. Przeładowanie konfiguracji Tmux bez restartu
Aby zastosować zmiany bez restartowania całej sesji Tmux, użyj następującego polecenia:
Reload tmux config
Shell
1
tmux source-file~/.tmux.conf
Dodatkowo możesz przeładować bieżącą powłokę z .bash_tmux ręcznie:
Reload shell
Shell
1
exec bash--rcfile~/.bash_tmux
4. Efekt końcowy
Nowe okno Tmux ma automatycznie nazwę lokalnego hosta
Po połączeniu przez SSH — zakładka zmienia się na nazwę zdalnego hosta
Po wylogowaniu — zakładka wraca do lokalnego hostname
Prosto, czytelnie i mega wygodnie — idealne dla adminów, devopsów i fanów porządku w Tmuxie 💪
System Linux to potężne narzędzie, które oferuje użytkownikom ogromną elastyczność i kontrolę nad ich środowiskiem pracy. Jednak aby w pełni wykorzystać jego potencjał, warto poznać kluczowe polecenia, które są niezbędne zarówno dla początkujących, jak i zaawansowanych użytkowników. W tym artykule przedstawimy i omówimy najważniejsze polecenia w systemie Linux, które każdy użytkownik powinien znać.
1. Podstawowe polecenia nawigacyjne
pwd – Wyświetla bieżącą ścieżkę katalogu, w którym się znajdujesz:
Przykład użycia pwd
Shell
1
pwd
ls – Listuje zawartość katalogu. Można użyć opcji -l dla szczegółowego widoku lub -a aby pokazać ukryte pliki:
Przykład użycia ls
Shell
1
ls-a
cd – Zmienia katalog. Na przykład cd /home/user przeniesie Cię do katalogu /home/user:
Przykład użycia cd
Shell
1
cd~
mkdir – Tworzy nowy katalog:
Przykład użycia mkdir
Shell
1
mkdirprojekty
rmdir – Usuwa pusty katalog:
Przykład użycia rmdir
Shell
1
rmdirstare_pliki
2. Zarządzanie plikami
cp – Kopiuje pliki lub katalogi:
Przykład użycia cp
Shell
1
cpdokument.txtnowy_katalog/
mv – Przenosi lub zmienia nazwę plików/katalogów:
Przykład użycia mv
Shell
1
mvplik.txt/home/user/nowy_katalog/
rm – Usuwa pliki lub katalogi. Użyj opcji -r aby usunąć katalog z zawartością:
Przykład użycia rm
Shell
1
rm-rstare_dane
touch – Tworzy pusty plik lub aktualizuje czas modyfikacji istniejącego pliku:
Przykład użycia touch
Shell
1
touchraport.txt
3. Zarządzanie procesami
ps – Wyświetla aktualnie uruchomione procesy. Użyj opcji -aux aby zobaczyć wszystkie procesy:
Przykład użycia ps
Shell
1
ps-aux
top – Wyświetla dynamiczną listę procesów w czasie rzeczywistym:
Przykład użycia top
Shell
1
top
kill – Zatrzymuje proces o podanym ID:
Przykład użycia kill
Shell
1
kill1234
bg i fg – Zarządzanie procesami w tle i na pierwszym planie:
Przykład użycia fg
Shell
1
fg
4. Zarządzanie użytkownikami i uprawnieniami
sudo – Pozwala na wykonanie polecenia z uprawnieniami administratora:
Przykład użycia sudo
Shell
1
sudo apt update
chmod – Zmienia uprawnienia do plików/katalogów:
Przykład użycia chmod
Shell
1
chmod755skrypt.sh
chown – Zmienia właściciela pliku/katalogu:
Przykład użycia chown
Shell
1
chownadmin:admin plik.txt
useradd i userdel – Dodaje i usuwa użytkowników:
Przykład użycia useradd
Shell
1
useradd janek
5. Sieć i komunikacja
ping – Sprawdza połączenie z innym hostem:
Przykład użycia ping
Shell
1
ping192.168.1.1
ifconfig – Wyświetla informacje o interfejsach sieciowych:
Przykład użycia ifconfig
Shell
1
ifconfig
ssh – Łączy się zdalnie z innym komputerem:
Przykład użycia ssh
Shell
1
ssh user@192.168.1.2
scp – Kopiuje pliki przez SSH:
Przykład użycia scp
Shell
1
scp plik.txtuser@host:/home/user/
6. Przykłady użycia poleceń
Poniżej znajduje się przykład użycia kilku omówionych poleceń:
chmod – Zmienia uprawnienia do plików/katalogów:
Przykład użycia chmod
Shell
1
chmod755skrypt.sh
chown – Zmienia właściciela pliku/katalogu:
Przykład użycia chown
Shell
1
chownadmin:developers logi.txt
useradd i userdel – Dodaje i usuwa użytkowników:
Przykład użycia useradd
Shell
1
useradd janek
7. Zarządzanie dyskami i systemem plików
df – Wyświetla informacje o dostępnej przestrzeni na dyskach:
Przykład użycia df
Shell
1
df-h
du – Pokazuje rozmiar plików i katalogów:
Przykład użycia du
Shell
1
du-shdocuments
mount – Montuje system plików:
Przykład użycia mount
Shell
1
mount/dev/sdb1/mnt/external
umount – Odmontowuje system plików:
Przykład użycia umount
Shell
1
umount/mnt/external
8. Wyszukiwanie plików
find – Wyszukuje pliki w systemie:
Find files
Shell
1
find/home/user-name"*.txt"
locate – Szybkie wyszukiwanie plików w systemie:
Locate file
Shell
1
locate plik.txt
grep – Wyszukuje wzorce w plikach:
Search error in syslog
Shell
1
grep"error"/var/log/syslog
which – Znajduje pełną ścieżkę do wykonywalnego pliku:
Check Python location
Shell
1
which python
9. Komunikacja z systemem
echo – Wyświetla tekst na ekranie:
Hello World
Shell
1
echo"Hello, World!"
cat – Wyświetla zawartość pliku:
Display file content
Shell
1
catplik.txt
more – Wyświetla zawartość pliku strona po stronie:
Display file by pages
Shell
1
moreplik.txt
less – Zawiera funkcje podobne do more, ale oferuje więcej opcji nawigacji:
Navigate file
Shell
1
less plik.txt
man – Wyświetla podręcznik użytkownika dla polecenia:
Manual page for ls
Shell
1
manls
10. Praca z archiwami
tar – Tworzy archiwum lub rozpakowuje je:
Tworzenie archiwum
Shell
1
tar-czvf projekty.tar.gzprojekty/
zip – Tworzy archiwum ZIP:
Tworzenie pliku ZIP
Shell
1
zip archiwum.zipplik1.txtplik2.txt
unzip – Rozpakowuje pliki ZIP:
Rozpakowywanie pliku ZIP
Shell
1
unzip archiwum.zip
tar -xvzf – Rozpakowuje archiwum TAR.GZ:
Rozpakowywanie archiwum TAR.GZ
Shell
1
tar-xvzf archiwum.tar.gz
gzip – Kompresuje pliki w formacie .gz:
Kompresowanie pliku .gz
Shell
1
gzip plik.txt
gunzip – Rozpakowuje pliki .gz:
Rozpakowywanie pliku .gz
Shell
1
gunzip plik.txt.gz
11. Monitorowanie systemu
uptime – Wyświetla czas działania systemu oraz obciążenie:
Sprawdzanie czasu działania systemu
Shell
1
uptime
dmesg – Wyświetla komunikaty systemowe związane z rozruchem i sprzętem:
Sprawdzanie błędów systemowych
Shell
1
dmesg|greperror
iostat – Pokazuje statystyki wejścia/wyjścia systemu:
Monitorowanie statystyk I/O
Shell
1
iostat
free – Pokazuje informacje o pamięci RAM:
Sprawdzanie pamięci RAM
Shell
1
free-h
netstat – Wyświetla informacje o połączeniach sieciowych:
Monitorowanie połączeń sieciowych
Shell
1
netstat-tuln
ss – Nowoczesna wersja netstat, służy do monitorowania połączeń sieciowych:
xargs – Przesyła argumenty z wejścia do innych poleceń:
Przetwarzanie plików
Shell
1
find.-name"*.txt"|xargscat
chmod – Zmienia uprawnienia do plików/katalogów:
Zmiana uprawnień
Shell
1
chmod755plik.txt
chattr – Zmienia atrybuty plików:
Zmiana atrybutów pliku
Shell
1
chattr+iplik.txt
System Linux oferuje szeroki zestaw poleceń, które pozwalają na pełną kontrolę nad komputerem. Kluczowe polecenia, jak ls, cd, cp, czy rm, są używane na co dzień do nawigacji po systemie plików, zarządzania plikami oraz katalogami. Aby skutecznie opanować te komendy, najlepiej zacząć od tych, które są najbardziej przydatne w codziennej pracy. Przykładowo, polecenia do nawigacji po katalogach i zarządzania plikami są fundamentalne i wymagają praktyki, aby stały się intuicyjne. Inne polecenia, takie jak ps do monitorowania procesów, ping do testowania połączeń sieciowych, czy chmod do zmiany uprawnień, również warto poznać, aby móc w pełni wykorzystać moc systemu Linux.
Aby uczyć się skutecznie, warto zacząć od eksperymentowania z poleceniami w praktyce. Tworzenie plików, katalogów, kopiowanie i usuwanie danych pozwala na zapoznanie się z ich działaniem. Z czasem warto zacząć łączyć różne polecenia, by rozwiązywać bardziej zaawansowane problemy, jak monitorowanie procesów, zarządzanie użytkownikami czy praca z logami systemowymi. Można także korzystać z dokumentacji, np. man lub stron internetowych, aby zgłębiać szczegóły każdego polecenia i jego opcji.
Pamiętaj, że regularne korzystanie z terminala pozwala na naukę nawyków, które sprawią, że obsługa systemu Linux stanie się bardziej naturalna. Częste korzystanie z poleceń, rozwiązywanie problemów oraz eksperymentowanie z nowymi komendami to najlepszy sposób na opanowanie systemu i wykorzystywanie go w pełni.
Linux to naprawdę potężne narzędzie, które daje ogromną kontrolę nad systemem… ale pamiętaj, nie eksperymentuj na produkcji! W końcu, eksperymentowanie na serwerze produkcyjnym to trochę jak gra w rosyjską ruletkę — tylko że z większymi konsekwencjami. Jeśli chcesz poczuć się jak prawdziwy Linuxowy magik, zawsze testuj swoje komendy na środowisku deweloperskim. Tylko wtedy będziesz w stanie uczyć się na błędach, zamiast szukać przyczyny zniknięcia kilku gigabajtów danych. A jeśli nie wiesz, co robisz, po prostu wezwij swoją niezawodną broń: man!
Zastanawiałeś się kiedyś, jak usprawnić zarządzanie i monitorowanie maszyn wirtualnych w swoim środowisku Proxmox? QEMU Guest Agent to prawdziwy przełom, oferujący narzędzia, które znacząco ułatwiają interakcję z wirtualnymi systemami. Przyjrzyjmy się, jak to narzędzie może zmienić twoje podejście.
Dlaczego QEMU Guest Agent jest niezbędny?
Synchronizacja czasu: Utrzymanie spójnego czasu pomiędzy maszynami wirtualnymi a hostem może być trudne, ale QEMU Guest Agent automatyzuje to, zapewniając płynne działanie operacji zależnych od czasu.
Zarządzanie zasilaniem: Wyobraź sobie możliwość wyłączania lub restartowania maszyn wirtualnych bezpośrednio z panelu Proxmox — nie ma potrzeby logowania się do każdej VM. To nie tylko wygodne, ale także oszczędza czas.
Monitorowanie systemu: Uzyskaj szczegółowe informacje o systemach plików, aktywności sieciowej i innych parametrach operacyjnych bezpośrednio z hosta. Ten poziom monitorowania pozwala na terminową diagnostykę i regulacje.
Zarządzanie dyskami: Obsługa operacji na dyskach bez konieczności bezpośredniej interwencji na VM ułatwia tworzenie kopii zapasowych i przywracanie danych jak nigdy dotąd.
Konfiguracja QEMU Guest Agent na twoim serwerze Proxmox
Uruchomienie QEMU Guest Agent obejmuje kilka prostych kroków:
Aktywacja Agenta: Zaloguj się do panelu Proxmox, przejdź do sekcji 'Opcje’ wybranej maszyny wirtualnej i upewnij się, że opcja 'QEMU Guest Agent’ jest zaznaczona.
Następnie instalacja na maszynie wirtualnej Ubuntu:
Install QEMU Guest Agent
Shell
1
2
3
sudo apt-getinstall qemu-guest-agent
sudo systemctl start qemu-guest-agent
sudo systemctl enable qemu-guest-agent
W celu sprawdzenia, czy odpowiednio działa qeumu-guest-agent możesz wykonać polecenie:
Check agent
Shell
1
systemctl status qemu-guest-agent
QEMU Guest Agent nie tylko ułatwia życie, automatyzując rutynowe zadania — również zwiększa bezpieczeństwo i efektywność twojego wirtualnego środowiska. Niezależnie od tego, czy zarządzasz pojedynczą maszyną wirtualną czy całym zbiorem, jest to nieocenione narzędzie w twoim arsenale.
Automatyzacja Zarządzania Przestrzenią Dyskową w Środowisku Linux
W dzisiejszym cyfrowym świecie, gdzie dane gromadzone są w coraz większych ilościach, zarządzanie przestrzenią dyskową staje się kluczowym elementem utrzymania efektywności operacyjnej systemów. W tym artykule przedstawię skrypt, który automatyzuje proces zarządzania przestrzenią na zdalnym dysku montowanym przez SSHFS, szczególnie przydatny dla administratorów systemów, którzy regularnie muszą radzić sobie z zapełniającymi się nośnikami danych.
Wymagania wstępne
Przed rozpoczęciem, upewnij się, że na twoim systemie zainstalowane jest SSHFS oraz wszystkie niezbędne pakiety umożliwiające jego prawidłową pracę. SSHFS pozwala na montowanie systemów plików zdalnych przez SSH, co jest kluczowe dla działania naszego skryptu. Aby zainstalować SSHFS oraz niezbędne narzędzia, w tym pakiet umożliwiający przekazywanie hasła (sshpass), użyj poniższego polecenia:
Instalacja SSHFS i sshpass
Shell
1
2
sudo apt-getupdate
sudo apt-getinstall sshfs fuse sshpass-y
Skrypt Bash do zarządzania przestrzenią dyskową
Nasz skrypt Bash skupia się na monitorowaniu i utrzymaniu określonego procentu wolnej przestrzeni dyskowej na zdalnym dysku, montowanym za pomocą SSHFS. Oto główne funkcje skryptu:
Definicja Celów:
TARGET_USAGE=70 – procent przestrzeni dyskowej, który chcemy utrzymać jako zajęty. Skrypt będzie działał na rzecz utrzymania przynajmniej 30% wolnego miejsca na dysku.
Punkt Montowania i Ścieżki:
MOUNT_POINT=”/mnt/qnapskorupki” – lokalny katalog, w którym montowany jest zdalny dysk. TARGET_DIRS=”$MOUNT_POINT/up*.soban.pl” – ścieżki katalogów, w których skrypt będzie szukał plików do usunięcia, jeśli zajdzie taka potrzeba.
Funkcja check_qnap: Ta funkcja sprawdza, czy dysk jest zamontowany i czy katalog montowania nie jest pusty. Jeśli są problemy, skrypt próbuje odmontować i ponownie zamontować dysk, używając sshfs z hasłem przekazanym przez sshpass.
Usuwanie Plików: Skrypt monitoruje użycie dysku i, jeśli przekroczone jest TARGET_USAGE, znajduje i usuwa najstarsze pliki w określonych katalogach aż do osiągnięcia docelowego poziomu wolnej przestrzeni.
Pełny Skrypt Bash
Shell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/bin/bash
TARGET_USAGE=70
MOUNT_POINT="/mnt/qnapskorupki"
TARGET_DIRS="$MOUNT_POINT/up*.soban.pl"
# Function to check and mount SSHFS
functioncheck_qnap{
local remote_path="/share/MD0_DATA/backup_proxmox/"
local user_remote="remote_user"
local remote_host="192.168.1.XX"
local port=22
local password='XXXXXXXXXXXXXXXXXXXXXXX'
# Check if the mounting directory exists and is empty
if[!-d"$MOUNT_POINT"]||[-z"$(ls -A $MOUNT_POINT)"];then
echo"Problem: The directory $MOUNT_POINT is missing or empty. Attempting to remount..."
# Unmount if anything is currently mounted
ifmountpoint-q$MOUNT_POINT;then
echo"Unmounting $MOUNT_POINT..."
fusermount-u$MOUNT_POINT
sleep5
fi
# Remount
echo"Mounting SSHFS: $user_remote@$remote_host:$remote_path to $MOUNT_POINT..."
Należy zachować powyżej odpowiednią ścieżkę do skryptu.
Bezpieczeństwo i optymalizacja
Skrypt używa hasła wprost w linii komend, co może stanowić ryzyko bezpieczeństwa. W praktycznym zastosowaniu zaleca się użycie bardziej zaawansowanych metod autentykacji, na przykład kluczy SSH, które są bezpieczniejsze i nie wymagają jawnej obecności hasła w skrypcie. Jednak w przypadku QNAPa posłużyliśmy się hasłem pisząc ten skrypt.
Podsumowanie
Prezentowany skrypt jest przykładem, jak można automatyzować codzienne zadania administracyjne, takie jak zarządzanie przestrzenią dyskową, zwiększając tym samym efektywność i niezawodność operacji. Jego implementacja w realnych środowiskach IT może znacznie usprawnić procesy zarządzania danymi, zwłaszcza w sytuacjach, gdzie szybkie reagowanie na zmiany w użyciu dysku jest krytyczne.
Automatyczne wyłączanie laptopa przy niskim stanie baterii
Zachowanie długiej żywotności baterii i ochrona danych są kluczowe dla użytkowników laptopów. W tym artykule pokażemy, jak stworzyć prosty skrypt Bash, który automatycznie wyłączy Twój laptop, gdy poziom naładowania baterii spadnie poniżej 20%. Dodatkowo, dowiesz się, jak ustawić crontab, aby skrypt był uruchamiany co 10 minut, zapewniając ciągłe monitorowanie.
Tworzenie skryptu Bash
Skrypt Bash, który przygotowaliśmy, będzie sprawdzać aktualny poziom naładowania baterii i porównywać go z ustalonym minimalnym progiem. Jeśli poziom baterii spadnie poniżej tego progu, skrypt inicjuje wyłączenie systemu, co pomaga w ochronie danych i sprzętu.
Battery Check Script
Shell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/bin/bash
# Define the minimum battery level before shutdown
Dzięki temu rozwiązaniu, możesz być spokojny o stan swojego laptopa nawet podczas intensywnego użytkowania. Automatyczne wyłączanie przy niskim stanie baterii nie tylko chroni sprzęt, ale także pomaga w utrzymaniu dłuższej żywotności baterii.
Poszerzanie przestrzeni dyskowej w wirtualnych maszynach Linux to kluczowy element zarządzania systemami serwerowymi. W tym artykule pokazujemy, jak efektywnie zwiększyć przestrzeń dyskową używając narzędzi LVM i fdisk, bazując na rzeczywistych danych z systemu.
Wstępne przygotowania
Przed przystąpieniem do zmian w partycjach i woluminach, ważne jest, aby sprawdzić aktualny stan dysków w systemie. Użyjemy polecenia lsblk, aby zidentyfikować dostępne dyski i partycje.
Shell
1
lsblk
Oto przykład wyniku polecenia lsblk na maszynie:
Shell
1
2
3
4
5
6
7
8
9
10
11
12
NAME MAJ:MIN RMSIZE RO TYPEMOUNTPOINT
loop07:0055.7M1loop/snap/core18/2829
sda8:0042G0disk
├─sda18:10512M0part/boot/efi
├─sda28:201G0part/boot
└─sda38:3040.5G0part
└─ubuntu--vg-ubuntu--lv253:0078.5G0lvm/
sdb8:160350G0disk
└─sdb18:17060G0part
└─ubuntu--vg-ubuntu--lv253:0078.5G0lvm/
sr011:011024M0rom
Tworzenie snapshotów
Zanim przystąpimy do zmian w konfiguracji dysków, zaleca się wykonanie snapshotu woluminów LVM, aby zapewnić możliwość przywrócenia danych w przypadku nieoczekiwanych problemów.
Następnie, przystępujemy do modyfikacji partycji, korzystając z fdisk. Usuwamy istniejącą partycję, a potem tworzymy nową, która wykorzysta całą dostępną przestrzeń na dysku sdb.
Shell
1
fdisk/dev/sdb
Zapis zmian
Po prawidłowym skonfigurowaniu partycji, korzystamy z komendy w w fdisk, aby zapisać zmiany i zaktualizować tabelę partycji.
Shell
1
Command(mforhelp):w
Wykonanie pvscan
Po modyfikacji partycji, wykonujemy polecenie pvscan, aby system mógł zaktualizować informacje o dostępnych fizycznych woluminach.
Shell
1
pvscan
Konfiguracja LVM
Po zapisaniu zmian w tabeli partycji, musimy zaktualizować konfigurację LVM, aby uwzględnić nową przestrzeń dyskową. Używamy polecenia lvextend z automatycznym rozszerzaniem systemu plików.
Shell
1
lvextend-l+100%FREE/dev/ubuntu-vg/ubuntu-lv-r
Podsumowanie
Rozszerzenie przestrzeni dyskowej na wirtualnej maszynie Linux poprawia wydajność i dostępność przestrzeni do przechowywania danych. Dzięki opisanym krokom, zarządzanie przestrzenią dyskową w systemach wykorzystujących LVM staje się prostsze i bardziej efektywne.
Podczas zarządzania klastrami Proxmox można napotkać różne trudności techniczne, takie jak niespójności w konfiguracji klastra lub problemy z przywracaniem kontenerów LXC. Znalezienie i rozwiązanie tych problemów jest kluczowe dla utrzymania stabilności i wydajności środowiska wirtualizacji. W tym artykule przedstawiam szczegółowy przewodnik, jak zdiagnozować i rozwiązać problem z nieosiągalnym węzłem oraz jak pomyślnie przywrócić kontener LXC.
Zanim przystąpisz do jakichkolwiek działań, upewnij się, że masz aktualny backup systemu.
Diagnostyka stanu klastra Proxmox
Shell
1
2
pvecm delnode up-page-02
Node/IP:up-page-02isnotaknown host of the cluster.
oraz:
Shell
1
2
pct restore107vzdump-lxc-107-2024_11_12-03_00_01.tar.zst--storage local
CT107already exists on node'up-page-02'
Aby zrozumieć stan klastra, wykonaj na węźle node-up-page-04 polecenie:
Shell
1
pvecm nodes
Oczekiwany output:
Shell
1
2
3
4
5
Membership information
----------------------
Nodeid Votes Name
11node-up-page-01
21node-up-page-04(local)
Następnie sprawdź szczegółowe informacje o klastrze za pomocą polecenia:
Shell
1
pvecm status
Oczekiwany output:
Shell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Cluster information
-------------------
Name:soban-proxmox
Config Version:4
Transport:knet
Secure auth:on
Quorum information
------------------
Date:Wed Nov1310:40:122024
Quorum provider:corosync_votequorum
Nodes:2
Node ID:0x00000002
Ring ID:1.e6
Quorate:Yes
Votequorum information
----------------------
Expected votes:2
Highest expected:2
Total votes:2
Quorum:2
Flags:Quorate
Membership information
----------------------
Nodeid Votes Name
0x000000011<masked IP>
0x000000021<masked IP>(local)
Usuwanie pliku konfiguracyjnego kontenera i czyszczenie danych
Odkryłem, że plik konfiguracyjny kontenera 107 wciąż istnieje na systemie plików klastra w ścieżce:
Proces przywracania zakończył się pomyślnie, a kontener był gotowy do użycia. Ten przypadek pokazuje, jak ważna jest dokładna diagnostyka i zarządzanie plikami konfiguracyjnymi w Proxmox podczas pracy z klastrami. Warto prowadzić regularne przeglądy konfiguracji, aby unikać niespójności i problemów operacyjnych w przyszłości.
Podczas codziennej pracy z bazami danych MySQL, mogą pojawić się specyficzne wyzwania, takie jak brakujące tabele lub błędy związane z nierozpoznaną bazą danych performance_schema. Te problemy mogą znacząco wpływać na wydajność i stabilność systemów bazodanowych, a ich diagnozowanie i rozwiązywanie bywa często skomplikowane i czasochłonne. Aby ułatwić to zadanie, stworzyłem ten przewodnik, który jest wynikiem moich doświadczeń oraz sprawdzonych praktyk. Zapewniam kompleksowe podejście do identyfikacji i naprawy problemów związanych z performance_schema. Jest to dosyć proste zaimportowanie schematu z nowo zbudowanej bazy danych.
Oczywiście przed całą operacją należy wykonać backup bazy najlepiej.
Początkowa diagnoza w MySQL
Zacznij od zidentyfikowania problemu w powłoce MySQL:
Upewnij się, że na twoich systemach zainstalowane są następujące pakiety, które są niezbędne do obsługi uwierzytelniania Kerberos oraz montowania systemów plików CIFS:
Instalacja pakietów
Shell
1
apt install krb5-user cifs-utils keyutils
Inicjalizacja biletu Kerberos
Zainicjuj bilet Kerberos za pomocą poniższego polecenia:
Inicjalizacja Kerberos
Shell
1
kinit twojanazwa@twojadomena.com
Aby zweryfikować ważność biletu i zobaczyć szczegóły, użyj:
Weryfikacja biletu
Shell
1
klist
Ręczne montowanie zasobów
Aby ręcznie zamontować zasób CIFS, użyj poniższego polecenia. Zamień twójserwer/twójzasób oraz /twójpunktmonowania na odpowiedni adres serwera i lokalny punkt montowania:
Te ustawienia są kluczowe, aby zapewnić bezpieczny i niezawodny dostęp do zasobów sieciowych przy użyciu Kerberosa w systemach Linux. Zawsze upewnij się, że twoje bilety Kerberos są ważne i odnawiaj je w miarę potrzeby. W przypadku problemów związanych z montowaniem lub uwierzytelnianiem, odwołaj się do dzienników systemowych lub skonsultuj się z administratorem systemu.
Serwery wirtualizacyjne bazujące na systemach z rodziny Debian, takie jak Proxmox, są często używane w środowiskach testowych, gdzie ciągła dostępność jest kluczowa. Czasami te serwery są instalowane na laptopach, które są wykorzystywane jako niskobudżetowe lub przenośne rozwiązania. Standardowe ustawienia zarządzania energią w laptopach mogą jednak prowadzić do niepożądanych zachowań, takich jak uśpienie lub hibernacja przy zamknięciu pokrywy. Poniżej opisuję, jak zmienić te ustawienia w systemie operacyjnym bazującym na Debianie, aby zapewnić nieprzerwaną pracę serwera.
Krok 1: Dostęp do pliku konfiguracyjnego
Otwórz terminal i wpisz poniższe polecenie, aby edytować plik /etc/systemd/logind.conf przy użyciu edytora tekstowego (np. nano):
Edycja logind
Shell
1
nano/etc/systemd/logind.conf
Krok 2: Modyfikacja ustawień logind
Znajdź linijkę zawierającą HandleLidSwitch i zmień jej wartość na ignore. Jeśli linia jest zakomentowana (poprzedzona znakiem #), usuń znak #. Możesz również dodać tę linię na końcu pliku, jeśli nie istnieje.
Shell
1
HandleLidSwitch=ignore
Krok 3: Zastosowanie i restart usługi
Po wprowadzeniu zmian i zapisaniu pliku, należy zrestartować usługę systemd-logind, aby zmiany weszły w życie. Użyj poniższego polecenia w terminalu:
Resetowanie systemd-logind
Shell
1
systemctl restart systemd-logind
Dzięki tym zmianom, zamknięcie pokrywy laptopa nie będzie już inicjować hibernacji ani uśpienia, co jest szczególnie ważne w przypadku korzystania z serwerów bazujących na Debianie, w tym Proxmox, jako rozwiązania serwerowe.