برای مدیریت روزمرهٔ یک سرور لینوکس حدود ۴۰ دستور کافی است: جابهجایی و ویرایش فایل (ls، cd، nano)، مدیریت بسته (apt)، سرویسها (systemctl و journalctl)، منابع (df، free، htop)، شبکه (ss، curl، ping) و انتقال فایل (scp و rsync). این صفحه آنها را دستهبندیشده با مثال آورده است تا بعد از اتصال SSH سریع کار را شروع کنید.
همهٔ مثالها برای Ubuntu/Debian است. اگر هنوز به سرور وصل نشدهاید، ابتدا آموزش اتصال SSH را ببینید.
فایلها و پوشهها
| دستور | کاربرد |
|---|---|
pwd |
نمایش مسیر فعلی |
ls -lah |
فهرست فایلها با حجم و دسترسیها (شامل فایلهای مخفی) |
cd /var/www |
رفتن به پوشه؛ cd .. یک سطح بالاتر؛ cd ~ پوشهٔ خانه |
mkdir -p app/logs |
ساخت پوشه (با والدها) |
cp -r src dst |
کپی فایل یا پوشه |
mv old new |
جابهجایی یا تغییر نام |
rm file / rm -r dir |
حذف (بدون سطل زباله؛ با احتیاط) |
cat file / less file |
نمایش محتوا (less برای فایلهای بزرگ) |
tail -f file.log |
دنبال کردن زندهٔ انتهای فایل |
nano file |
ویرایشگر ساده (ذخیره: Ctrl+O، خروج: Ctrl+X) |
find / -name "*.conf" 2>/dev/null |
جستجوی فایل با نام |
grep -rn "server_name" /etc/nginx |
جستجوی متن در فایلها |
هشدار:
rm -rfبدون بازگشت است. پیش از اجرای آن روی مسیرهای سیستمی، دوباره مسیر را بخوانید.
کاربران و دسترسیها
sudo adduser deploy # ساخت کاربر
sudo usermod -aG sudo deploy # دادن دسترسی sudo
su - deploy # تغییر کاربر
sudo chown -R deploy:deploy /var/www/app # تغییر مالک
chmod 600 ~/.ssh/authorized_keys # تغییر دسترسی
خلاصهٔ اعداد chmod: 7 = خواندن+نوشتن+اجرا، 6 = خواندن+نوشتن، 5 = خواندن+اجرا، 4 = فقط خواندن. سه رقم بهترتیب برای مالک، گروه و دیگران است. مثلاً 755 برای پوشهها و 644 برای فایلهای وب رایج است.
نصب و بهروزرسانی بستهها
sudo apt update # بهروزرسانی فهرست بستهها
sudo apt upgrade -y # بهروزرسانی بستههای نصبشده
sudo apt install -y nginx git # نصب
sudo apt remove nginx # حذف
apt list --installed | grep php # جستجو در نصبشدهها
sudo apt autoremove -y # پاک کردن وابستگیهای بیاستفاده
اگر روی سرور ایران apt خطای 403 یا تایماوت میدهد، راهنمای مخزنهای داخلی را ببینید.
سرویسها و لاگها
sudo systemctl status nginx # وضعیت
sudo systemctl restart nginx # ریاستارت
sudo systemctl reload nginx # بارگذاری مجدد تنظیمات بدون قطعی
sudo systemctl enable --now app # فعال در بوت و اجرای فوری
systemctl list-units --type=service --state=running
journalctl -u nginx -n 100 --no-pager # ۱۰۰ خط آخر لاگ یک سرویس
journalctl -u app -f # دنبال کردن زنده
journalctl -p err --since today # فقط خطاهای امروز
برای ساختن سرویس systemd برای برنامهٔ خودتان، اجرای ربات تلگرام با systemd نمونهٔ کامل دارد.
$ systemctl status nginx$ sudo systemctl restart nginx$ journalctl -u nginx -n 50 --no-pager$
منابع: رم، پردازنده و دیسک
free -h # رم و swap (ستون available مهم است)
htop # پایش زندهٔ پردازنده و رم (نصب: apt install htop)
uptime # میانگین بار (load average)
nproc # تعداد هستهها
df -h # فضای خالی دیسکها
du -sh /var/* | sort -h # حجم پوشهها برای پیدا کردن عامل پر شدن دیسک
lsblk # دیسکها و پارتیشنها
- load average بیشتر از تعداد هستهها برای مدت طولانی یعنی پردازنده زیر فشار است.
- اگر رم پر میشود، رفع مشکل OOM را ببینید.
- پرکنندههای رایج دیسک:
/var/log، تصاویر و volume های داکر (docker system df) و بکاپهای قدیمی.
$ htop$ free -h$ df -h$ du -sh /var/* | sort -h | tail$
شبکه و پورتها
ip a # آیپیهای سرور (IPv4 و IPv6)
sudo ss -tulpn # پورتهای در حال گوش دادن و برنامهٔ مربوط
curl -I https://example.com # بررسی پاسخ HTTP
ping -c 5 8.8.8.8 # بررسی دسترسی و تأخیر
mtr -rwc 50 example.com # مسیر و از دست رفتن بسته (apt install mtr-tiny)
dig +short example.com # بررسی DNS (apt install dnsutils)
برای کنترل پورتها، آموزش فایروال UFW را ببینید.
انتقال فایل
# از کامپیوتر شما به سرور
scp backup.tar.gz root@SERVER_IP:/root/
# همگامسازی پوشه (فقط تغییرات منتقل میشود؛ مناسب انتقال سایت بین سرورها)
rsync -avz --progress ./site/ root@SERVER_IP:/var/www/site/
# دانلود مستقیم روی سرور
wget https://example.com/file.zip
curl -LO https://example.com/file.zip
فشردهسازی
tar czf backup.tar.gz /var/www/site # ساخت آرشیو
tar xzf backup.tar.gz -C /restore # باز کردن
zip -r site.zip site/ && unzip site.zip
اجرای کار طولانی بدون قطع شدن: tmux
اگر اتصال SSH قطع شود، دستور در حال اجرا هم متوقف میشود. با tmux، نشست روی سرور باقی میماند:
sudo apt install -y tmux
tmux new -s work # شروع نشست
# Ctrl+B سپس D برای جدا شدن
tmux attach -t work # بازگشت به نشست
زمانبندی کارها با cron
crontab -e
# هر شب ساعت ۳ بامداد بکاپ:
0 3 * * * tar czf /root/backup-$(date +\%F).tar.gz /var/www/site
اطلاعات سیستم
lsb_release -a # نسخهٔ سیستمعامل
uname -r # نسخهٔ کرنل
hostnamectl # نام میزبان و اطلاعات کلی
timedatectl # منطقهٔ زمانی؛ تغییر: sudo timedatectl set-timezone Asia/Tehran
sudo reboot # راهاندازی مجدد
سؤالات متداول
فرق sudo و root چیست؟
root کاربر با دسترسی کامل است. sudo به یک کاربر عادی اجازه میدهد دستور خاصی را با دسترسی root اجرا کند؛ کار روزمره با کاربر عادی و sudo امنتر است.
بهتر است از nano استفاده کنم یا vim؟
برای شروع nano سادهتر است. vim قدرتمندتر است اما یادگیری بیشتری لازم دارد.
اگر دستوری را اشتباه اجرا کنم و سرور خراب شود چه کنم؟
اگر اسنپشات یا بکاپ دارید، بازگردانی کنید. در سرورهای ساعتی کلودیفای ساخت یک سرور تازه سریع است؛ به همین دلیل بکاپ منظم از دادهها اهمیت دارد.
این دستورات روی CentOS یا AlmaLinux هم کار میکند؟
بیشتر دستورات یکساناند؛ تفاوت اصلی در مدیریت بسته است (dnf بهجای apt).
از ۱٬۲۰۰ تومان در ساعت · پرداخت ریالی



