Sometimes as admins, we need to share files across systems quickly. For whatever reason, we need to get a single tar or conf file from one system to another, or maybe copy a group of files between systems. We find that we need to install a package or utility to share the files, or we may need to enable a feature to share the content. Regardless of the situation, we can use Python's SimpleHTTPServer module as a quick web server.

Python -m SimpleHTTPServer

The SimpleHTTPServer module is a Python module that enables a developer to lay the foundation for developing a web server. However, as sysadmins, we can use the module to serve files from a directory.

Usage

Python must be installed to use the SimpleHTTPServer module. Python may be installed as a dependency to an application or service that is already running on the system. Run python -V to verify its presence. To use the module for our purposes, run the following command from the directory with the files we want to share:

python -m SimpleHTTPServer

* Note: The module has been renamed http.server in python3

The module loads and serves any files within the directory on port 8000 by default.

8000

From the remote system, browse to http://<ip>:8000 using your browser of choice. A directory listing will be displayed where you can open or download any file.

dircropped

Another option is to use wget or curl to download the files to the remote system.

wget http://<ip>:8000/filename
curl http://<ip>:8000/filename

This simple local HTTP server is a nice little utility to use in those times when you need to transfer files quickly across systems.

Use cases

This tip is not a replacement for actual file-hosting solutions in business environments. The SimpleHTTPServer module is actually a development tool used as a framework tool to lay the foundation for a full-blown web server with all the necessary security features included. However, we can use the module for our purposes to:

  • Quickly serve kickstart files in a pinch - Copy the /root/anaconda-ks.cfg or /root/original-ks.cfg to a folder and serve with python -m SimpleHTTPServer. Edit the grub config at boot, and away you go.
  • Share a file to/from a VM - Copy a file to a folder and serve with python -m SimpleHTTPServer.
  • Serve a file on an allowed port of firewall - Copy a file to a folder and serve with python -m SimpleHTTPServer port

Other options

You can also use a while loop with ncat or /dev/tcp/host/port for transport… but that is another article. I hope you find this option a useful tool in your toolbox.

Gotchas

You may need to open ports in your firewall:

# firewall-cmd --add-port=portnumber/tcp

[ Download now: A sysadmin's guide to Bash scripting. ]


Sull'autore

Stephen Wilson is a Senior Storage Consultant with Red Hat, Inc. He has over 20 years of experience in information systems management. His professional interests include system administration, cybersecurity, cloud technologies, and virtualization.


Stephen lives in Meridian, MS with his wife Tan and two boys, Stephen and Matthew. Stephen's personal hobbies include weightlifting, running (yes for fun), and basketball. Stephen is active in his community and volunteers his time to try and make things better for everybody

UI_Icon-Red_Hat-Close-A-Black-RGB

Ricerca per canale

automation icon

Automazione

Novità sull'automazione IT di tecnologie, team e ambienti

AI icon

Intelligenza artificiale

Aggiornamenti sulle piattaforme che consentono alle aziende di eseguire carichi di lavoro IA ovunque

open hybrid cloud icon

Hybrid cloud open source

Scopri come affrontare il futuro in modo più agile grazie al cloud ibrido

security icon

Sicurezza

Le ultime novità sulle nostre soluzioni per ridurre i rischi nelle tecnologie e negli ambienti

edge icon

Edge computing

Aggiornamenti sulle piattaforme che semplificano l'operatività edge

Infrastructure icon

Infrastruttura

Le ultime novità sulla piattaforma Linux aziendale leader a livello mondiale

application development icon

Applicazioni

Approfondimenti sulle nostre soluzioni alle sfide applicative più difficili

Virtualization icon

Virtualizzazione

Il futuro della virtualizzazione negli ambienti aziendali per i carichi di lavoro on premise o nel cloud