ফেজ ১ — লিনাক্স বেসিক (Linux Fundamentals)#
১০টি লেসন · আনুমানিক ৪ ঘণ্টা ৩০ মিনিট · লেভেল: শুরুর
Proxmox VE Debian লিনাক্সের উপরে চলে। তাই লিনাক্স শেখা বাধ্যতামূলক। যারা শুধু ওয়েব UI-তে ক্লিক করে, আর যারা সার্ভার সত্যিই নিয়ন্ত্রণ করে — পার্থক্য এই জ্ঞানটুকু।
লেসন ১ — প্রক্সমক্সের জন্য লিনাক্স পরিচিতি (২০ মিনিট)#
সহজ ভাষায়#
পৃথিবীর ৯৬% সার্ভার লিনাক্সে চলে। প্রক্সমক্স Debian বেছে নিয়েছে, কারণ Debian স্থিতিশীল, এর প্যাকেজ সিস্টেম নির্ভরযোগ্য, এবং এতে বাড়তি জিনিস কম থাকে।
Proxmox VE 9.x চলে Debian 13 "Trixie"-এর উপরে, কার্নেল ৬.৮ বা তার নতুন।
লিনাক্সের তিনটি স্তর#
| স্তর | কাজ |
|---|---|
| Kernel | CPU, RAM, ডিস্ক, প্রসেস নিয়ন্ত্রণ করে |
| Shell | আপনার লেখা কমান্ড কার্নেলের ভাষায় অনুবাদ করে (bash, sh, zsh) |
| Userspace | সাধারণ প্রোগ্রাম — ls, apt, systemctl, qm, pct |
মনে রাখুন: qm (VM ম্যানেজার) আর pct (কন্টেইনার ম্যানেজার) কোনো জাদু নয়। এগুলো সাধারণ userspace প্রোগ্রাম, যেগুলো কার্নেলকে অনুরোধ পাঠায়।
লেসন ২ — কমান্ড লাইনের মৌলিক বিষয় (৩৫ মিনিট)#
সহজ ভাষায়#
ওয়েব UI-তে যা যা করেন, তার প্রতিটির একটি শেল কমান্ড আছে। শেল দ্রুত, স্ক্রিপ্ট করা যায়, এবং ওয়েব UI নষ্ট হলেও কাজ করে।
চলাফেরা ও ফাইল দেখা#
pwd # এখন কোন ফোল্ডারে আছি
ls -la /etc/pve # প্রক্সমক্সের কনফিগ ফোল্ডার
cd /etc/pve && ls # corosync.conf, storage.cfg, nodes, priv ...
cat /etc/pve/storage.cfg # ফাইলের ভেতরটা দেখা
less /var/log/syslog # পাতা করে পড়া (বের হতে q)
tail -f /var/log/syslog # লাইভ লগ দেখাফাইল অপারেশন#
cp /etc/pve/storage.cfg /tmp/storage.cfg.bak # কপি
mv old-name.conf new-name.conf # নাম বদল বা সরানো
mkdir -p /mnt/storage/backups # ফোল্ডার তৈরি
rm file.txt # ডিলিট
rm -rf directory/ # ফোল্ডারসহ ডিলিট — খুব বিপজ্জনকখোঁজা#
find / -name "vm-100-disk-0.qcow2" 2>/dev/null # নাম দিয়ে ফাইল খোঁজা
grep -r "storage" /etc/pve/ # ফাইলের ভেতরে লেখা খোঁজা
grep -n "ERROR" /var/log/syslog | tail -20 # শেষ ২০টি এরর
dmesg | grep -i "error" | tail -10 # pipe দিয়ে কমান্ড জোড়াসতর্কতা:
rm -rf /পুরো সিস্টেম মুছে ফেলে। ফেরত আনার উপায় নেই।rm -rfলেখার আগে পাথ দুইবার পড়ুন।
লেসন ৩ — ব্যবহারকারী, পারমিশন ও sudo (৩০ মিনিট)#
সহজ ভাষায়#
প্রতিটি ফাইলের একজন মালিক (owner), একটি গ্রুপ, আর একটি পারমিশন সেট থাকে। এটা বুঝলে "Permission denied" এরর আর নিরাপত্তার ভুল দুইটাই কমে যায়।
পারমিশন পড়ার নিয়ম#
-rw------- মানে:
| অংশ | মানে |
|---|---|
| প্রথম অক্ষর | ধরন: - ফাইল, d ফোল্ডার, l লিংক |
| পরের ৩টি | মালিকের অধিকার (rw- = পড়া+লেখা) |
| পরের ৩টি | গ্রুপের অধিকার |
| শেষ ৩টি | বাকি সবার অধিকার |
chmod 600 ~/.ssh/id_rsa # শুধু মালিক পড়তে-লিখতে পারবে
chmod 755 /usr/local/bin/script # মালিক সব, বাকিরা পড়া+চালানো
chown root:www-data /etc/pve/storage.cfg # মালিক ও গ্রুপ বদল
id # আমি কে
adduser admin # নতুন ইউজার
usermod -aG sudo admin # sudo দলে যোগলেসন ৪ — apt দিয়ে প্যাকেজ ম্যানেজমেন্ট (২৫ মিনিট)#
সহজ ভাষায়#
apt হলো Debian-এর সফটওয়্যার ইনস্টলার। প্রক্সমক্সে সফটওয়্যার যোগ করার এটাই সঠিক পথ।
apt update # প্যাকেজ তালিকা নতুন করা
apt upgrade -y # আপডেট বসানো
apt install htop curl wget -y # নতুন সফটওয়্যার
apt remove --purge snapd -y # কনফিগসহ মুছে ফেলা
apt autoremove -y # অপ্রয়োজনীয় প্যাকেজ পরিষ্কারনতুন ইনস্টলের পর রিপো বদলানো#
ফ্রি ব্যবহারকারীদের enterprise রিপো কাজ করে না। বদলে না নিলে apt update চালালে 401 Unauthorized এরর আসে।
echo "# deb https://enterprise.proxmox.com/debian/pve trixie pve-enterprise" \
> /etc/apt/sources.list.d/pve-enterprise.list
echo "deb http://download.proxmox.com/debian/pve trixie pve-no-subscription" \
> /etc/apt/sources.list.d/pve-install-repo.list
apt update && apt dist-upgrade -yলেসন ৫ — systemd ও সার্ভিস ম্যানেজমেন্ট (৩০ মিনিট)#
সহজ ভাষায়#
প্রক্সমক্সের প্রতিটি সার্ভিস — ওয়েব API, KVM ডেমন, ক্লাস্টার corosync — systemd চালায়। systemctl কমান্ডটি প্রতিদিন লাগবে।
systemctl status pvedaemon # সার্ভিস চালু আছে কি না
systemctl restart pveproxy # সার্ভিস রিস্টার্ট
systemctl enable --now corosync # বুটে চালু + এখনই চালু
systemctl list-units --type=service --state=runningলগ দেখা#
journalctl -u pvedaemon --since "1 hour ago" # এক সার্ভিসের লগ
journalctl -fu pveproxy # লাইভ লগ
journalctl -p err --since today # শুধু এরর
dmesg | tail -30 # হার্ডওয়্যার ঘটনাটিপ: ওয়েব UI না খুললে প্রথমে দেখুন
systemctl status pveproxyএবংjournalctl -u pveproxy।
গুরুত্বপূর্ণ সার্ভিস: pvedaemon (API), pveproxy (ওয়েব UI), pvestatd (স্ট্যাটাস), corosync (ক্লাস্টার)।
লেসন ৬ — SSH: রিমোট অ্যাক্সেস ও কী অথেন্টিকেশন (৩৫ মিনিট)#
সহজ ভাষায়#
সার্ভার দূর থেকে চালাতে SSH লাগে। পাসওয়ার্ডের বদলে কী (key) ব্যবহার করা অনেক নিরাপদ।
# নিজের ল্যাপটপে কী তৈরি
ssh-keygen -t ed25519 -C "admin@proxmox" -f ~/.ssh/proxmox_key
# পাবলিক কী সার্ভারে পাঠানো
ssh-copy-id -i ~/.ssh/proxmox_key.pub root@192.168.1.100
# কী দিয়ে লগইন
ssh -i ~/.ssh/proxmox_key root@192.168.1.100sshd শক্ত করা (/etc/ssh/sshd_config)#
PermitRootLogin prohibit-password # root শুধু কী দিয়ে ঢুকবে
PasswordAuthentication no # পাসওয়ার্ড বন্ধ
PubkeyAuthentication yes
MaxAuthTries 3
LoginGraceTime 20এরপর systemctl restart sshd।
সতর্কতা: sshd সেটিং বদলানোর সময় আরেকটি কনসোল খোলা রাখুন। নিজেকে বাইরে আটকে ফেললে ফিজিক্যাল অ্যাক্সেস বা প্রক্সমক্স কনসোল ছাড়া উপায় থাকবে না।
লেসন ৭ — প্রসেস ম্যানেজমেন্ট (২৫ মিনিট)#
সহজ ভাষায়#
প্রতিটি চালু VM হোস্টে একটি প্রসেস। প্রসেস দেখতে ও থামাতে জানলে পারফরম্যান্স সমস্যা ধরতে পারবেন।
ps aux --sort=-%cpu | head -10 # সবচেয়ে বেশি CPU খাওয়া ১০টি প্রসেস
htop # ইন্টারঅ্যাক্টিভ মনিটর (q চেপে বের হন)
pgrep -a kvm # চালু VM প্রসেসগুলো
kill 1234 # ভদ্রভাবে থামানো (SIGTERM)
kill -9 1234 # জোর করে থামানো (SIGKILL)
kill -9 $(pgrep -f "kvm -id 100") # VM 100-এর প্রসেস — শুধু জরুরি অবস্থায়
ss -tulnp | grep :8006 # কোন প্রসেস 8006 পোর্ট ধরে আছে
lsof -i :8006লেসন ৮ — টেক্সট এডিটর: vim ও nano (২৫ মিনিট)#
সহজ ভাষায়#
প্রক্সমক্সের সব কনফিগ ফাইল কমান্ড লাইন থেকে এডিট করতে হয়। দুটি টুল যথেষ্ট।
nano — সহজটি#
nano /etc/network/interfaces
Ctrl+O সেভ
Ctrl+X বের হওয়া
Ctrl+K লাইন কাটা
Ctrl+U পেস্ট
Ctrl+W খোঁজাvim — শক্তিশালীটি#
vim-এ দুইটি মোড: Normal (নেভিগেশন) আর Insert (লেখা)। Esc চাপলে Normal মোডে ফেরে।
i লেখা শুরু (Insert মোড)
Esc Normal মোডে ফেরা
:w সেভ
:wq সেভ করে বের হওয়া
:q! সেভ না করে বের হওয়া
gg / G ফাইলের শুরু / শেষ
/শব্দ খোঁজা (n = পরেরটি)
dd / yy / p লাইন কাটা / কপি / পেস্ট
u আগের কাজ বাতিলটিপ: প্রক্সমক্স কনফিগের জন্য nano ব্যবহার করুন। vim ব্যবহার করুন শুধু যদি আগে থেকেই অভ্যস্ত হন।
লেসন ৯ — নেটওয়ার্ক ডায়াগনস্টিক টুলস (৩০ মিনিট)#
সহজ ভাষায়#
নেটওয়ার্ক সমস্যা আসবেই। এই টুলগুলো দিয়ে ধাপে ধাপে কারণ বের করা যায়।
ping -c 4 8.8.8.8 # সংযোগ আছে কি না
traceroute 8.8.8.8 # প্যাকেট কোন পথে যাচ্ছে
mtr --report 8.8.8.8 # প্রতিটি হপে প্যাকেট লস দেখায় (সবচেয়ে কাজের)
ss -tlnp # কোন কোন পোর্ট খোলা আছে
ss -tlnp | grep 8006 # ওয়েব UI পোর্ট
nc -zv pve2.lab.local 8006 # অন্য সার্ভারের পোর্ট খোলা কি না
nc -zv pve2 22
curl -I http://download.proxmox.com/debian/pve # রিপো পৌঁছায় কি না
wget https://example.com/file.iso -O /var/lib/vz/template/iso/file.isoটিপ:
apt install mtrকরে নিন। প্যাকেট লস কোন হপে হচ্ছে, সেটা traceroute-এর চেয়ে ভালো দেখায়।
লেসন ১০ — প্রক্সমক্সের জন্য Bash স্ক্রিপ্টিং (৩৫ মিনিট)#
সহজ ভাষায়#
একই কাজ বারবার করলে স্ক্রিপ্ট লিখুন — বাল্ক VM তৈরি, হেলথ চেক, ব্যাকআপ। ছোট স্ক্রিপ্টও ঘণ্টার পর ঘণ্টা বাঁচায়।
#!/bin/bash
set -euo pipefail # এরর হলে থামো, খালি ভ্যারিয়েবল = এরর, pipe-এর এররও ধরো
PVE_HOST="pve1.lab.local"
VM_IDS=(100 101 102)
if systemctl is-active --quiet pvedaemon; then
echo "PVE daemon is running"
else
echo "ERROR: pvedaemon is down!"
systemctl restart pvedaemon
fi
for vmid in "${VM_IDS[@]}"; do
status=$(qm status "$vmid" 2>/dev/null || echo "missing")
echo "VM $vmid: $status"
done
check_storage() {
local threshold=$1
local usage
usage=$(df /var/lib/vz | awk 'NR==2{print $5}' | tr -d '%')
if [ "$usage" -gt "$threshold" ]; then
echo "WARNING: /var/lib/vz is ${usage}% full"
fi
}
check_storage 80বাস্তব উদাহরণ — হেলথ চেক স্ক্রিপ্ট#
/usr/local/bin/pve-health-check.sh ফাইলে রাখুন। এটি দেখায়: চালু VM, স্টোরেজ ব্যবহার, মেমরি, ZFS পুলের অবস্থা, ফেইল করা সার্ভিস।
qm list | grep running
df -h /var/lib/vz /var/lib/pve-cluster
free -h
zpool status -x 2>/dev/null || echo "No ZFS pools"
systemctl --failed --no-legend | head -5chmod +x দিয়ে চালানোর অনুমতি দিন, তারপর cron-এ বসান:
0 8 * * * /usr/local/bin/pve-health-check.sh | mail -s "PVE Health" admin@example.comসতর্কতা: যে স্ক্রিপ্ট নিজে নিজে চলে, তাতে সবসময়
set -euo pipefailদিন। না দিলে একটি কমান্ড ব্যর্থ হলেও স্ক্রিপ্ট চলতে থাকে এবং ক্ষতি করে ফেলে।
ফেজ ১ শেষে আপনি যা পারবেন#
- শেল থেকে ফাইল দেখা, কপি করা, খোঁজা
- পারমিশন পড়া ও বদলানো
- প্যাকেজ ইনস্টল ও রিপো ঠিক করা
- সার্ভিস চালু-বন্ধ করা ও লগ পড়া
- SSH কী দিয়ে নিরাপদে লগইন করা
- প্রসেস দেখা ও থামানো
- কনফিগ ফাইল এডিট করা
- নেটওয়ার্ক সমস্যা ধাপে ধাপে খোঁজা
- ছোট অটোমেশন স্ক্রিপ্ট লেখা
পরবর্তী: ফেজ ২ — নেটওয়ার্কিং বেসিক