EC2 वर Files copy करायला scp कसं वापरायचं (Upload आणि Download)
मागच्या chapter मध्ये आपण दुसऱ्या website वरून आणि wget ने page वर images आणल्या. पण developer तुम्हाला web address देत नाही; तो laptop वरच्या files देतो. आता आपण scp शिकणार आहोत: laptop वरून server वर आणि server वरून laptop वर files safely copy करणारी command. एक image आणि एक PDF upload करू, एक file download करू, पूर्ण website एका zip file मध्ये upload करू, live site चा backup घेऊ, आणि शेवटी त्याच server वर Apache च्या जागी Nginx लावू. तुमचा server आणि laptop चं terminal तयार ठेवा.
या class मध्ये काय शिकणार
wgetका पुरत नाही, आणिscpकाय करतो- त्याला secure copy का म्हणतात
- scp command:
-ikey, source आणि destination, आणि colon - scp laptop च्या terminal मधून चालवायचा, SSH च्या आत नाही
- Image upload करून page वर वापरणं
- Case-sensitive नावं आणि
../path - PDFs, नावातले spaces आणि
%20 - Server वरून laptop वर download
- Files आणि folders च्या नावांचे rules
- पूर्ण website एका zip file मध्ये upload करणं, आणि
scp -r /var/www/htmlमध्ये unzip आणिhtmlच्या आतलाhtmlfix करणं- Live website चा backup घेणं
- Apache, Nginx आणि Tomcat
- त्याच server वर Apache वरून Nginx वर switch
1. scp का: wget फक्त websites वरून download करतो
का. wget server वर चालतो आणि web address वरून file download करतो. रोज लागणारी दोन कामं तो करू शकत नाही:
- Upload: laptop वरची file server वर copy करणं. तुमचा laptop काही website नाही, म्हणून server त्याच्याकडून
wgetकरू शकत नाही. - Download: server वरची file laptop वर copy करणं, उदाहरणार्थ backup.
काय. scp (secure copy) दोन्ही करतो. तो SSH वरून दोन machines मध्ये files copy करतो, login साठी वापरता त्याच key pair ने. कुठलीही file चालते: image, video, PDF, zip, text file.
Classroom line
To download from the server or upload to the server: the scp command.
Class मधलं वाक्य
"Server varna download karaychay, server la upload karaychay, SCP command."
Server वरून download करायचंय, server ला upload करायचंय: SCP command.
Classroom line
To download from the server or upload to the server: the scp command.
"Secure" का. तुमची file laptop आणि AWS मध्ये public internet वरून जाते. scp ती रस्त्यात encrypt करतो, म्हणून मध्ये कोणी ती पकडली तरी त्याला फक्त गोंधळलेला data दिसतो, तुमचा photo किंवा code नाही.
Classroom line
They may see the data, but only as encrypted text; they won't understand what's inside.
Class मधलं वाक्य
"Data disu shakte mhanje encrypted text disel tyala, pan tyacha aat content kay ahe te samajhnaar nahi."
Data दिसू शकतो, म्हणजे त्याला encrypted text दिसेल, पण त्याच्या आत content काय आहे ते समजणार नाही.
Classroom line
They may see the data, but only as encrypted text; they won't understand what's inside.
Figure 1. wget server वर चालतो आणि website वरून file ओढतो. scp तुमच्या laptop वर चालतो आणि SSH वरून दोन्ही बाजूंनी, encrypted, files copy करतो.
2. scp command
का. Login साठी तुम्ही आधीच ssh type करता. scp तीच key, user आणि IP वापरतो, म्हणून नवीन काही setup नाही: फक्त काय copy करायचं आणि कुठे, एवढं जोडायचं.
काय. SSH command तुम्हाला माहीत आहे:
ssh -i mykey.pem ec2-user@PUBLIC_IP
scp जवळजवळ तसाच दिसतो, फक्त source आणि destination add होतात:
scp -i mykey.pem SOURCE DESTINATION
scp: program.-i mykey.pem: तुमची key, SSH साठी वापरता तीच.SOURCE: जी file copy करायचीय ती.DESTINATION: copy कुठे जाणार ते.
एक बाजू server असेल, तर ती user@server:path अशी लिहायची. Colon मुळेच scp ला कळतं की "हे दुसऱ्या machine वर आहे":
ec2-user@PUBLIC_IP:.file home folder मध्ये,/home/ec2-userमध्ये, ठेवतो. Dot म्हणजे "home folder".ec2-user@PUBLIC_IP:colon नंतर काहीच नसेल तरी home folder च.ec2-user@PUBLIC_IP:ravifile home folder मधल्याravifolder मध्ये ठेवतो.
Figure 2. scp command चे चार भाग, आणि colon आणि त्यानंतरच्या path चा अर्थ.
Example 1: colon महत्त्वाचा. Colon विसरलात तर scp कुठेच connect होत नाही. तो फक्त तुमच्या laptop वरच ec2-user@PUBLIC_IP. सारख्या नावाची copy बनवतो, आणि server ला काहीच जात नाही. Server ची बाजू नेहमी : आणि path ने संपवायची.
3. Image upload करून page वर वापरणं
का. हे रोजचं काम आहे: laptop वरचा photo website वर दिसला पाहिजे.
scp कुठे चालवायचा. तुमच्या laptop वर, दुसऱ्या terminal window किंवा tab मध्ये (Windows वर PowerShell, Mac किंवा Linux वर Terminal). SSH session च्या आत नाही: server ला तुमच्या laptop च्या files दिसत नाहीत, म्हणून copy laptop वरूनच सुरू व्हायला पाहिजे.
Classroom line
Where do you run this command? Outside the server.
Class मधलं वाक्य
"He command kuthe fire karnar? Server chya baher."
ही command कुठे fire करणार? Server च्या बाहेर.
Classroom line
Where do you run this command? Outside the server.
कसं. समजा तुमची key mykey.pem Downloads मध्ये आहे आणि photo beach.jpg Desktop वर आहे.
Step 1. PowerShell (किंवा Terminal) उघडा. ते तुमच्या user folder मध्ये सुरू होतं, म्हणून Downloads आणि Desktop तिथेच असतात.
Step 2. Command type करा. Paths Tab ने भरा: दोन-तीन letters type करा आणि Tab दाबा.
scp -i .\Downloads\mykey.pem .\Desktop\beach.jpg ec2-user@PUBLIC_IP:.
Windows वर path मधले folders backslash \ ने वेगळे होतात. Mac किंवा Linux वर / ने: scp -i Downloads/mykey.pem Desktop/beach.jpg ec2-user@PUBLIC_IP:.
Step 3. या laptop वरून एखाद्या server ला पहिल्यांदा connect करता तेव्हा तो विचारतो की server वर trust करायचा का. yes type करा:
The authenticity of host 'PUBLIC_IP (PUBLIC_IP)' can't be established.
ED25519 key fingerprint is SHA256:...
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Step 4. 100% येईपर्यंत थांबा:
beach.jpg 100% ...KB ...KB/s 00:00
Classroom line
After doing this, what should happen? It should show 100%.
Class मधलं वाक्य
"Evdha kelyanantar kay zala pahije? 100% dakhvayla pahije."
एवढं केल्यानंतर काय झालं पाहिजे? 100% दाखवायला पाहिजे.
Classroom line
After doing this, what should happen? It should show 100%.
Step 5. SSH session मध्ये file आली का ते check करा आणि ती web root मध्ये हलवा:
[ec2-user@ip-172-31-xx-xx ~]$ ls
beach.jpg
[ec2-user@ip-172-31-xx-xx ~]$ sudo mv beach.jpg /var/www/html/
File home folder मध्ये येते कारण ec2-user ला तिथेच लिहायची परवानगी आहे. /var/www/html root चा आहे, म्हणून move ला sudo लागतो.
Step 6. Page वर वापरा:
cd /var/www/html
sudo nano beach.html
Type करा:
<img src="beach.jpg" width="600">
Step 7. http://PUBLIC_IP/beach.html उघडा.
Classroom line
Don't type the whole path by hand. Type one or two characters and press Tab.
Class मधलं वाक्य
"Path lihitana swatahun hatana lihu naka. Ek don character liha ani tab press kara."
Path लिहिताना स्वतःहून हाताने लिहू नका. एक-दोन characters लिहा आणि Tab press करा.
Classroom line
Don't type the whole path by hand. Type one or two characters and press Tab.
Instance restart केल्यावर site उघडत नसेल तर.
- Stop आणि start नंतर Apache बंद असतो.
sudo service httpd startचालवा (किंवा एकदाचsudo systemctl enable httpd, म्हणजे प्रत्येक boot ला तो start होईल). - IP च्या आधी
http://स्वतः type करा. Browser नेhttps://(port 443) try केलं आणि Security Group मध्ये फक्त port 80 allow असेल, तर page थांबून राहतं आणि मग time out होतं.
Classroom line
When we stop the server, the web server stops too.
Class मधलं वाक्य
"Apan jya veli server band karto tya veli web server band hoto."
आपण ज्या वेळी server बंद करतो त्या वेळी web server बंद होतो.
Classroom line
When we stop the server, the web server stops too.
4. Case-sensitive नावं आणि ../ path
का. नीट upload झालेली file सुद्धा तुटलेली image म्हणून दिसू शकते. नेहमीची दोन कारणं: नावातलं capital अक्षर आणि चुकीचा relative path, आणि दोन्ही पटकन तपासता येतात.
Example 2: एका capital letter ने image तुटते. Upload केलेल्या file चं नाव Beach.jpg आहे, पण page मध्ये <img src="beach.jpg"> आहे. Page वर तुटलेली image दिसते. Linux मध्ये file names case-sensitive असतात: Beach.jpg आणि beach.jpg ही दोन वेगळी नावं आहेत. ls जसं दाखवतो तसंच नाव लिहा, किंवा file rename करा.
Example 3: एक folder वर असलेली image. स्वतःचं page असलेला sub-folder बनवा:
cd /var/www/html
sudo mkdir gallery
cd gallery
sudo nano photos.html
Image /var/www/html मध्ये आहे, gallery च्या एक level वर. म्हणून page ../ ने एक level वर जातं:
<img src="../beach.jpg">
http://PUBLIC_IP/gallery/photos.html उघडा. फक्त src="beach.jpg" लिहिलं तर browser /gallery/beach.jpg शोधेल आणि तुटलेली image दाखवेल.
Figure 3. photos.html gallery च्या आत आहे आणि image एक level वर, म्हणून src ../beach.jpg. Linux मध्ये नावं case-sensitive असतात.
5. PDF, आणि नावातले spaces
का. खऱ्या sites images शिवाय बरंच काही देतात: brochures, forms, price lists. आणि laptops वरच्या files च्या नावात अनेकदा spaces असतात, ज्या quotes शिवाय shell तोडतो.
कसं. कुठलाही file type असाच चालतो. एक PDF upload करा (तुमच्याकडे नसेल तर internet वरून एखादं sample PDF download करा):
Step 1. Laptop वर:
scp -i .\Downloads\mykey.pem .\Downloads\notes.pdf ec2-user@PUBLIC_IP:.
Step 2. Server वर:
sudo mv notes.pdf /var/www/html/
Step 3. http://PUBLIC_IP/notes.pdf उघडा. Browser PDF उघडतो.
Example 4: नावात space. my notes.pdf नावाच्या file ने दोन problems येतात:
- Command line वर नाव quotes मध्ये टाकावं लागतं:
".\Downloads\my notes.pdf", नाहीतर scp ला दोन नावं दिसतात,myआणिnotes.pdf. - URL मध्ये space
%20असा लिहितात:http://PUBLIC_IP/my%20notes.pdf.
Classroom line
If your PDF's name has a space, you get problems when writing the URL.
Class मधलं वाक्य
"Tumchya PDF file chya navamadhe jar space asel, URL likhtana problem yetoy."
तुमच्या PDF file च्या नावामध्ये जर space असेल, तर URL लिहिताना problem येतोय.
Classroom line
If your PDF's name has a space, you get problems when writing the URL.
6. Server वरून laptop वर download
का. कधी server वरची file हवी असते: developer ला पाठवायचा log, किंवा कोणी server वर edit केलेलं page. Download म्हणजे तीच command, दोन बाजू उलट्या.
काय. दोन्ही बाजू उलट्या करा: आता source server आहे (त्याच्या colon सकट), आणि destination laptop वरचा folder. Command अजूनही laptop वरच चालवायची.
Figure 4. Animation: upload आणि download दोन्ही laptop च्या terminal मध्ये चालतात; फक्त source आणि destination ची जागा बदलते.
कसं.
Step 1. Server वर एक छोटी file बनवा आणि बाहेर पडा:
nano notes.txt
exit
Step 2. Laptop वर:
scp -i .\Downloads\mykey.pem ec2-user@PUBLIC_IP:notes.txt .\Downloads\
Colon नंतर folder शिवाय notes.txt म्हणजे "home folder मधली". Laptop वर तुम्ही ज्या folder मध्ये आहात तिथेच copy करायची असेल तर destination . द्या.
Step 3. Downloads\notes.txt Notepad मध्ये उघडा.
Classroom line
scp is always run outside the server.
Class मधलं वाक्य
SCP नेहमी server च्या बाहेरच execute होतो.
Classroom line – हिंदी
"SCP humesha server ke bahar hi execute hota hai."
Laptop आणि server मधल्या copies साठी हे बरोबर आहे. scp server च्या आत चालवायचा तो एकच case: एका server वरून दुसऱ्या server वर copy.
7. त्रास वाचवणारे नावांचे rules
का. इथला प्रत्येक नियम नंतर debug कराव्या लागणाऱ्या एका खऱ्या error ला टाळतो: तुटलेली image, तुटलेली command, पूर्ण न होणारा Tab.
- फक्त small letters वापरा. Linux case-sensitive आहे, आणि Tab completion पण पहिले letters बरोबर case मध्ये type केले तरच चालतं.
- Spaces नकोत. त्यांना command line वर quotes लागतात आणि URLs मध्ये ते
%20होतात. - शब्द underscore ने जोडा किंवा सरळ एकत्र लिहा:
my_folderकिंवाmyfolder,beach_photo.jpg.
Classroom line
Don't use capital letters at all. Always use small letters.
Class मधलं वाक्य
"Ajibat capital letters waparaychach nahi. Nehmi small letters waparayche."
अजिबात capital letters वापरायचेच नाहीत. नेहमी small letters वापरायचे.
Classroom line
Don't use capital letters at all. Always use small letters.
8. पूर्ण website एका zip file मध्ये
का. Developer तुम्हाला खूप files असलेला website folder देतो: pages, images, CSS, JavaScript. Folder थेट scp -r (recursive) ने copy करता येतो:
scp -i .\Downloads\mykey.pem -r .\Desktop\html ec2-user@PUBLIC_IP:.
खूप files असतील तर zip बहुतेक वेळा जास्त चांगला:
- एकच file, म्हणजे एकच copy, आणि check करायला सोपी.
- Size कमी होते. Compression repeat होणारा data एकदाच ठेवतो: सलग दहा
A"A, दहा वेळा" असे ठेवता येतात. - Transfer लवकर होतो, आणि अर्ध्यात काही राहून जात नाही.
Figure 5. Animation: laptop वर zip, एकच file scp, sudo mv ने /var/www/html मध्ये, sudo unzip, मग जास्तीच्या html folder मधून files वर हलवणं.
कसं.
Step 1. Windows वर website folder वर, इथे त्याचं नाव html आहे, right-click करा आणि Send to › Compressed (zipped) folder निवडा. html.zip मिळतो. सगळ्या files आत आहेत ना ते एकदा उघडून बघा.
Step 2. Upload करा. नुसता colon म्हणजे home folder:
scp -i .\Downloads\mykey.pem .\Desktop\html.zip ec2-user@PUBLIC_IP:
Step 3. Server वर तो web root मध्ये हलवा:
sudo mv html.zip /var/www/html/
आता http://PUBLIC_IP/html.zip उघडलं तर browser तो फक्त download करतो. Browser zip file दाखवू शकत नाही, आणि जी file दाखवता येत नाही ती download होते.
Classroom line
The browser doesn't understand a zip file... a file it doesn't understand gets downloaded.
Class मधलं वाक्य
Browser ला zip file समजत नाही... जी file समजत नाही ती download होते.
Classroom line – हिंदी
"Browser ko zip file samajh mein nahi aata hai... jo file samajh nahi aata wo download ho jata hai."
Step 4. Unzip करा. sudo शिवाय fail होतं, कारण folder root चा आहे:
[ec2-user@ip-172-31-xx-xx html]$ unzip html.zip
Archive: html.zip
checkdir error: cannot create html
Permission denied
...
sudo ने चालतं:
sudo unzip html.zip
Amazon Linux वर unzip आधीपासून install असतो.
Step 5. Windows ने folder पण zip मध्ये टाकला, म्हणून files आता /var/www/html/html/ मध्ये आहेत. त्या एक level वर हलवा:
cd html
sudo mv * ..
cd ..
ls
.. म्हणजे एक level वरचा folder. * म्हणजे इथल्या सगळ्या files, फक्त dot ने सुरू होणाऱ्या hidden files सोडून.
Classroom line
But html inside html doesn't look right, so let's move these files into html.
Class मधलं वाक्य
पण html च्या आत html बरं दिसत नाही, म्हणून या files html मध्ये move करूया.
Classroom line – हिंदी
"Lekin HTML ke andar HTML accha nahi lag raha hai, toh inn dono ko HTML mein move karte hain."
Step 6. http://PUBLIC_IP/ आणि zip मधलं एखादं page किंवा image त्याच्या नावाने उघडा.
9. Live website चा backup तुमच्या laptop वर
का. Live site बदलण्याआधी, जे चालतंय त्याची copy ठेवा. काही बिघडलं तर परत लावता येतं.
Figure 6. /var/www मध्ये वर जा, html folder sudo zip -r करा, zip home folder मध्ये हलवा, scp ने download करा, आणि उघडून check करा.
कसं.
Step 1. जो folder zip करायचाय त्याच्या एक level वर जा. ज्या folder मध्ये उभे आहात तोच zip करू नका.
cd /var/www
Classroom line
Don't cut the branch you're sitting on.
Class मधलं वाक्य
"Jya fandi var bastoy tya fandila todaycha nahi."
ज्या फांदीवर बसतोय त्या फांदीला तोडायचं नाही.
Classroom line
Don't cut the branch you're sitting on.
Step 2. पूर्ण folder zip करा. /var/www root चा आहे, म्हणून sudo; -r सगळे subfolders आणि hidden files घेतो:
[ec2-user@ip-172-31-xx-xx www]$ sudo zip -r backup.zip html
adding: html/ (stored 0%)
adding: html/index.html (deflated ...%)
...
-r शिवाय html/* subfolders च्या आतलं सोडून देईल.
Step 3. Zip home folder मध्ये हलवा, म्हणजे scp चा path छोटा आणि सोपा राहतो:
sudo mv /var/www/backup.zip /home/ec2-user/
scp ला फक्त file वाचायची परवानगी लागते; छोट्या path मुळे command type करायला सोपी जाते.
Step 4. Laptop वर download करा:
scp -i .\Downloads\mykey.pem ec2-user@PUBLIC_IP:backup.zip .\Downloads\
Step 5. Laptop वर extract करा आणि काही files, एखादं page, image, video, उघडून बघा, म्हणजे backup खरंच चालतोय याची खात्री होईल.
10. Apache, Nginx आणि Tomcat
का. Job posts मध्ये आणि servers वर ही तिन्ही नावं दिसतात. कोण काय करतो हे माहीत असलं की project साठी कोणता install करायचा ते कळतं.
काय. तुम्हाला भेटणारी तीन नावं:
- Apache HTTP Server (
httpd): आत्तापर्यंत वापरलेला web server. - Nginx: दुसरा free web server. तो कमी memory मध्ये एकाच वेळी खूप visitors handle करतो, म्हणून खूप busy sites तो वापरतात, बऱ्याचदा दुसऱ्या servers च्या पुढे. तोही तेच HTML, images आणि videos serve करतो.
- Apache Tomcat: Java web applications चालवणारा server. Apache httpd आणि Nginx files serve करतात; ते Java code चालवत नाहीत. ते Tomcat च्या पुढे बसून requests त्याच्याकडे पाठवू शकतात.
Project कुठला web server वापरणार हे बहुतेक architect किंवा team lead ठरवतो. Cloud engineer म्हणून तुम्हाला दोन्ही set up करता आले पाहिजेत.
11. त्याच server वर Apache वरून Nginx वर switch
का. Apache आणि Nginx दोघंही port 80 वर ऐकतात, आणि एका port वर एका वेळी एकच program बसू शकतो. म्हणून आधी Apache बंद करायचा. Apache चालू असताना Nginx start केला तर Nginx start होत नाही:
Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xeu nginx.service" for details.
काय. दोघांचे web folders वेगळे आहेत:
- Apache:
/var/www/html - Nginx:
/usr/share/nginx/html
Figure 7. एकच port 80: Apache बंद करा, Nginx install आणि start करा, मग तुमची site /var/www/html मधून /usr/share/nginx/html मध्ये copy करा.

Whiteboard: Nginx वर switch: httpd stop, nginx install आणि start, मग /var/www/html/* /usr/share/nginx/html मध्ये copy. Port 80 एकावेळी एकच वापरू शकतो.
कसं.
Step 1. Apache बंद करा:
sudo service httpd stop
Step 2. Nginx install करा:
sudo yum install nginx -y
Step 3. तो start करा आणि check करा:
[ec2-user@ip-172-31-xx-xx ~]$ sudo service nginx start
Redirecting to /bin/systemctl start nginx.service
[ec2-user@ip-172-31-xx-xx ~]$ sudo service nginx status
Active: active (running) बघा. Service म्हणजे background मध्ये सतत चालणारा आणि requests ची वाट बघणारा program.
Step 4. Nginx चा web folder बघा:
[ec2-user@ip-172-31-xx-xx ~]$ cd /usr/share/nginx/html
[ec2-user@ip-172-31-xx-xx html]$ ls
404.html 50x.html index.html nginx-logo.png poweredby.png
Step 5. http://PUBLIC_IP/ उघडा. तुम्हाला अजून जुनं Apache page दिसू शकतं: browser ने त्याच्या cache मधली save केलेली copy दाखवली. Refresh करा, आणि Welcome to nginx! दिसेल.

Whiteboard: Nginx चं welcome page: Nginx install झालाय आणि /usr/share/nginx/html मधली स्वतःची index.html serve करतोय.
Classroom line
That's called cache; that page was cached.
Class मधलं वाक्य
त्याला cache म्हणतात, ते page cache झालं होतं.
Classroom line – हिंदी
"Cache bolte usko, wo page cache hua tha."
Step 6. नसलेलं page उघडा, जसं http://PUBLIC_IP/ravi.html. आता Nginx स्वतःचं 404 page देतो, जे /usr/share/nginx/html/404.html मधून येतं.

Whiteboard: Amazon Linux वरचं Nginx चं 404 page: तुम्ही शोधत असलेलं page सापडलं नाही, /usr/share/nginx/html/404.html मधून serve झालेलं.
Step 7. तुमची site Apache च्या folder मधून Nginx च्या folder मध्ये copy करा. Move नाही, copy करा, म्हणजे परत Apache वर गेलात तर त्याच्याकडे files असतील:
cd /usr/share/nginx/html
sudo cp -r /var/www/html/* .
Step 8. ls चालवा, मग browser refresh करा. तुमच्या index.html ने Nginx च्या welcome page ची जागा घेतली, आणि प्रत्येक page आणि image आधीच्याच URL वर उघडते, आता Nginx serve करतोय.
Classroom line
We stopped Apache, installed Nginx, started Nginx...
Class मधलं वाक्य
"Apache band kela, Nginx install kela, Nginx la start kela..."
Apache बंद केला, Nginx install केला, Nginx ला start केला...
Classroom line
We stopped Apache, installed Nginx, started Nginx...
/var/www/html/* hidden files (dot ने सुरू होणारी नावं) सोडतो. त्याही copy करायच्या असतील तर folder चा content dot ने copy करा:
sudo cp -r /var/www/html/. /usr/share/nginx/html/
Step 9. तुम्ही चालवलेल्या सगळ्या commands क्रमाने बघायला history चालवा. त्या notes म्हणून ठेवा.
12. पूर्ण flow एका ठिकाणी
- Upload:
scp -i mykey.pem file ec2-user@PUBLIC_IP:., laptop वर चालवायचा. - Download:
scp -i mykey.pem ec2-user@PUBLIC_IP:file ., हाही laptop वर. - Server वर:
sudo mv file /var/www/html/. - Pages: नावं
lsदाखवतो तशीच; एक folder वर जायला../; URL मधल्या space साठी%20(त्यापेक्षा spaces नकोतच). - Website: zip करा (किंवा folder
scp -rकरा), upload,sudo mv,sudo unzip,html/htmlअसेल तरsudo mv * ... - Backup:
cd /var/www,sudo zip -r backup.zip html, home मध्ये हलवा, download करा, उघडून बघा. - Nginx:
sudo service httpd stop,sudo yum install nginx -y,sudo service nginx start,sudo cp -r /var/www/html/* /usr/share/nginx/html/.
13. Hands-on lab: scp ने upload, publish आणि backup
हा lab का. Server वर files टाकणं आणि त्यांच्या copies परत आणणं हे रोजचं काम. हा lab एक image upload करतो, publish करतो, एक page download करतो, आणि पूर्ण site चा zip backup घेतो. scp commands तुमच्या laptop च्या terminal मध्ये चालवा, SSH च्या आत नाही.
- Laptop वरून image upload करा
- Command:
scp -i mykey.pem beach.jpg ec2-user@PUBLIC_IP:. - काय दिसेल:
100%ने संपणारी progress ओळ. - Check करा: SSH window मध्ये
ls ~मध्येbeach.jpgदिसते. - का: आधी source, मग destination. Colon server ची बाजू दाखवतो; त्यानंतरचा
.म्हणजे ec2-user चं home,sudoशिवाय लिहिता येणारी एकमेव जागा.
- Command:
- Publish करा
- Command:
sudo mv ~/beach.jpg /var/www/html/ - काय दिसेल: काहीच नाही.
- Check करा:
http://PUBLIC_IP/beach.jpgमध्ये picture दिसतं. - का:
/var/www/htmlroot चं आहे, म्हणून ec2-user म्हणूनscpतिथे थेट लिहू शकत नाही. आधी home मध्ये upload, मगsudoने move.
- Command:
- नावात space असलेली file upload करा
- Command:
scp -i mykey.pem "price list.pdf" ec2-user@PUBLIC_IP:. - काय दिसेल:
100%ने संपणारी progress ओळ. - Check करा:
ls ~मध्ये'price list.pdf'दिसते. - का: Quotes शिवाय shell ला दोन files दिसतात,
priceआणिlist.pdf. त्याहून चांगलं: upload आधीचprice-list.pdfअसं rename करा.
- Command:
- Laptop वर page download करा
- Command:
scp -i mykey.pem ec2-user@PUBLIC_IP:/var/www/html/index.html . - काय दिसेल:
100%ने संपणारी progress ओळ. - Check करा:
index.htmlआता laptop च्या current folder मध्ये आहे. - का: बाजू उलट्या: colon असलेला server source;
.म्हणजे तुम्ही आहात तो laptop folder. वाचायलाsudoलागत नाही, कारण file सगळ्यांना वाचता येते.
- Command:
- Server वर पूर्ण site zip करा
- Command:
cd /var/www && sudo zip -r ~/backup.zip html - काय दिसेल: प्रत्येक file साठी एक
adding:ओळ. - Check करा:
ls -l ~/backup.zipमध्ये 0 पेक्षा जास्त size. - का: शेकडो files ऐवजी copy करायला एकच zip.
-rप्रत्येक subfolder मध्ये जातो; एक level वर गेल्यानेhtmlfolder स्वतः zip मध्ये राहतो.
- Command:
- Backup download करा
- Command:
scp -i mykey.pem ec2-user@PUBLIC_IP:backup.zip . - काय दिसेल:
100%ने संपणारी progress ओळ. - Check करा: Laptop वर zip उघडा: आत
index.htmlआणिbeach.jpgअसलेलाhtml/दिसतो. - का: Backup server बाहेर असेल आणि एकदा उघडून बघितला असेल तरच तो खरा. Server हरवला तर याच copy मधून restore करायचं.
- Command:
- साफ करा आणि stop करा
- Command:
rm -f ~/backup.zip ~/"price list.pdf" - काय दिसेल: काहीच नाही.
- Check करा:
ls ~स्वच्छ. मग instance stop करा. - का: Server वरचे जुने zips हळूहळू 8 GB disk भरतात. Stop केल्याने free-tier hours वाचतात.
- Command:
14. घरी करून बघा
Try at home
Task 1: upload
- scp ने एक photo upload करा आणि तो
photo.htmlवर दाखवा. - नावात capital letter टाकून परत upload करा आणि page चं काय होतं ते बघा.
/var/www/html/gallery/मध्ये एक page ठेवा जे../ने photo दाखवेल.
Task 2: download
- Server वर
notes.txtबनवा आणि तीDownloadsमध्ये download करा.
Task 3: website zip मध्ये
- दोन pages आणि एक image असलेला folder zip करा, upload करा,
/var/www/htmlमध्ये unzip करा आणि दोन्ही pages उघडा. - तोच folder एकदा
scp -rने copy करून बघा.
Task 4: backup
sudo zip -rने/var/www/htmlचा backup घ्या, download करा आणि laptop वर उघडा.
Task 5: Nginx
- Nginx वर switch करा, welcome page आणि 404 page बघा, मग तुमची site copy करून check करा.
झालं की instance stop करा.
Recap
थोडक्यात
wgetफक्त websites वरून download करतो;scplaptop आणि server मध्ये SSH वरून, encrypted, files copy करतो.scp -i key SOURCE DESTINATION; server ची बाजूec2-user@PUBLIC_IP:path.:.किंवा नुसता:= home folder,:ravi= त्यातला folder. Colon नसेल = फक्त local copy.- scp laptop च्या terminal मध्ये चालवायचा, SSH च्या आत नाही. Server-to-server copy हा अपवाद.
- Files home folder मध्ये येतात;
sudo mvने त्या/var/www/htmlमध्ये हलवा. - नावं case-sensitive;
../एक folder वर नेतो; spaces%20होतात. Small letters वापरा, spaces नकोत. - Website एका zip मध्ये upload करा (किंवा folder
scp -rकरा), मगsudo unzip, आणिhtml/htmlझालं तरsudo mv * ... - Backup:
/var/wwwमधूनsudo zip -r, home मध्ये हलवा, scp ने download, उघडून check. - Nginx आणि Apache दोघंही port 80 वापरतात: दुसरा start करण्याआधी पहिला बंद करा. Nginx चा web root
/usr/share/nginx/html. Tomcat Java web apps चालवतो.
Ravindra Bagale, trainer: linkedin.com/in/ravindra-bagale. File names (beach.jpg, notes.pdf, notes.txt, html.zip, backup.zip, mykey.pem) आणि ravi, gallery folders शिकण्यासाठीची उदाहरणं आहेत; PUBLIC_IP म्हणजे तुमच्या instance चा public IPv4 address. Progress numbers आणि fingerprints "..." ने छोटे केलेत; prompt मधलं hostname उदाहरणादाखल आहे.
सराव Tasks
Latur Coaching Classes हा लातूर मधला कोचिंग व्यवसाय आहे. Pooja Jadhav त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे INR मध्ये मोजले जातात आणि AWS resources ap-south-1 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.
0 / 12
सोपं बदलानंतर service restart करा
का: Config बदल service restart/reload नंतरच लागू होतात.
काय करायचं: nginx service restart करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Service चालू आहे का ते पाहा
का: Site बंद असेल तर आधी web server चालू आहे का ते पाहा.
काय करायचं: httpd service चं status दाखवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Ubuntu वर package install करा
का: Ubuntu apt वापरतं. Package नावं वेगळी: Ubuntu वर Apache म्हणजे apache2.
काय करायचं: Ubuntu वर apache2 package confirm न विचारता install करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Amazon Linux वर package install करा
का: Amazon Linux 2023 वर dnf हा package manager. -y आपोआप yes देतो.
काय करायचं: Amazon Linux 2023 वर httpd package confirm न विचारता install करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Server वरून website test करा
का: DNS तयार होण्याआधीही web server उत्तर देतो का ते curl दाखवतो.
काय करायचं: http://localhost ला request पाठवा व फक्त response headers दाखवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं GitHub वरून code घ्या
का: git clone पूर्ण repository server वर copy करतो.
काय करायचं: https://github.com/laturcoaching/website.git सध्याच्या folder मध्ये clone करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं SSH चा port
का: Security group rules ला योग्य port हवा.
काय करायचं: SSH साठी security group ने कोणता TCP port उघडावा?
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
मध्यम nginx config test करा
का: Restart मुळे site बंद पडण्याआधी test चुका पकडतो.
काय करायचं: nginx configuration files मधल्या चुका तपासा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Service आत्ता व boot ला सुरू करा
का: enable reboot नंतर सुरू करतो; --now आत्ताच सुरू करतो.
काय करायचं: nginx service enable करा व लगेच सुरू करा, एका command ने.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Port 80 सगळ्यांसाठी उघडा
का: Security group HTTP allow करत असेल तरच visitors website पाहू शकतात.
काय करायचं: Security group sg-023666135aa54c3b2 वर 0.0.0.0/0 कडून inbound TCP port 80 allow करा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम CloudFormation: web SG
का: फक्त 443 उघडल्याने server सुरक्षित.
काय करायचं: 0.0.0.0/0 कडून TCP 443 allow करणारा AWS::EC2::SecurityGroup. GroupDescription द्या.
- Task मधल्या top-level keys पासून सुरू करा.
- Child keys 2 spaces ने indent करा (tabs नकोत).
- प्रत्येक property मध्ये task मधली value भरा.
- Check answer दाबा. Keys चा क्रम महत्त्वाचा नाही.
अवघड Ubuntu वर nginx site enable करा
का: Ubuntu वर sites-available पासून sites-enabled ला symbolic link ने site enable होते.
काय करायचं: /etc/nginx/sites-enabled/ मध्ये /etc/nginx/sites-available/laturcoaching ची symbolic link बनवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
उजळणी, तुलना आणि मुलाखत cards
हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.









अजून cards: Ravi Sir's Cards.