הצורך בהעברת קבצים דרך רשת עולה לעתים קרובות. מערכות GNU/Linux תומכות בפרוטוקולים וכלים שונים לעשות זאת, שחלקם מיועדים לשיתוף קבצים קבוע במקצת (כמו SMB, AFP ו-NFS), בעוד שאחרות כמו Secure Copy (SCP) משמשות להעברת קבצים ידנית ומהירות. ביניהם פרוטוקול HyperText Transfer (HTTP), הפרוטוקול הרב-תכליתי והנמצא בכל מקום בו תלויה ה-World Wide Web.
Python, הכלולה כברירת מחדל ברוב ההפצות של לינוקס, מספקת שרתי HTTP פשוטים באמצעות המודולים “SimpleHTTPServer” ו-“http.server”. הראשון נמצא בספרייה הסטנדרטית של Python 2, בעוד שהאחרון כלול ב-Python 3. שרתי HTTP קלים אלו אינם דורשים התקנה נפרדת וניתן להפעיל אותם באופן מיידי בפקודה אחת.
תוכן העניינים
התקנת Python
המערכת שלך כנראה כוללת לפחות גרסה אחת של Python, אבל אם זה לא המקרה, התקן את Python 3 באמצעות מנהל החבילות המקורי שלך.
לדוגמה, בדביאן ובאובונטו:
sudo apt update sudo apt install -y python3
הפעלת שרת HTTP
שים לב לכתובת ה-IP המשמשת את המכונה השולחת.
ip a s
גלה איזו גרסה של Python מותקנת באמצעות הפקודות הבאות:
python --version python3 --version
באותו מחשב, שנה את ספריית העבודה שלך לזו שמכילה את הקבצים שאתה מעביר. שים לב לעובדה שכל התוכן של ספריית העבודה הנוכחית שלך יכול להיות נגיש לכל אחד ברשת שלך (או לאינטרנט אם למכונה השולחת יש כתובת IP ציבורית) בזמן ששרת Python HTTP פועל.
cd /path/to/files/
לדוגמה:
cd /home/user/Documents/
כעת אתה יכול להפעיל את שרת ה-HTTP. עבור Python 2.x, השתמש במודול SimpleHTTPServer:
python -m SimpleHTTPServer
או http.server במקרה של Python 3.x:
python3 -m http.server
שתי הגרסאות מאזינות ביציאה 8000 כברירת מחדל, אם כי ניתן לציין במפורש מספר יציאה אחר אחרי שם המודול.
python -m SimpleHTTPServer [port] python3 -m http.server [port]
הערה: נדרשות הרשאות שורש אם אתה בוחר ביציאה מתחת ל-1024.
מוריד את הקבצים שלך
במחשב המקבל, אתה יכול להשתמש בכל לקוח HTTP כדי להוריד את הקבצים שלך. אם אתה משתמש בסביבה גרפית, דפדפן לרוב נוח יותר משירותי שורת פקודה. פשוט דפדף ל http: // IP_ADDRESS: 8000, כאשר “IP_ADDRESS” היא כתובת ה-IP של המחשב השולח, ולחץ על הקבצים הרצויים כדי להוריד אותם.
לחלופין, אתה יכול להשתמש ב-Wget או cURL כדי להביא את הקבצים שלך. אתה כבר אמור להיות מותקן אחד או שניהם. אם לא, אנו מציעים להתקין את Wget מכיוון שהיא ידידותית יותר למשתמש ותומך בהורדת ספריות שלמות.
עבור דביאן ואובונטו:
sudo apt install wget
עבור RHEL ו- CentOS 6/7:
sudo yum install wget
עבור פדורה ו-RHEL/CentOS 8:
sudo dnf install wget
שימוש ב-Wget
כדי להוריד קובץ בודד עם Wget, פשוט הפעל את Wget ואחריו כתובת האתר של הקובץ שברצונך להוריד.
wget http://IP_ADDRESS:8000/filename
אתה יכול גם להשתמש ב-Wget כדי להוריד באופן רקורסיבי את כל הספרייה על ידי הוספת ה -r
דגל שורת הפקודה.
wget -r http://IP_ADDRESS:8000/
באמצעות cURL
כברירת מחדל, curl מנסה להדפיס את תוכן הקובץ למסוף שלך. לאחר מכן, כדי לשמור את הקובץ, ציין שם קובץ עם ה- -o
דֶגֶל.
curl http://IP_ADDRESS:8000/filename -o filename
סיכום
פונקציונליות ה-HTTP בספריית Python הסטנדרטית מספקת דרך בסיסית אך מהירה ונוחה להעברת קבצים, מושלמת עבור תרחישים מסוימים. אבל זכור שמכיוון שמדובר ב-HTTP רגיל ללא הצפנה או אימות, עליך להיזהר לא לחשוף קבצים רגישים.