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.
From the remote system, browse to http://<ip>
using your browser of choice. A directory listing will be displayed where you can open or download any file.
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 withpython -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. ]
About the author
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
Browse by channel
Automation
The latest on IT automation for tech, teams, and environments
Artificial intelligence
Updates on the platforms that free customers to run AI workloads anywhere
Open hybrid cloud
Explore how we build a more flexible future with hybrid cloud
Security
The latest on how we reduce risks across environments and technologies
Edge computing
Updates on the platforms that simplify operations at the edge
Infrastructure
The latest on the world’s leading enterprise Linux platform
Applications
Inside our solutions to the toughest application challenges
Original shows
Entertaining stories from the makers and leaders in enterprise tech
Products
- Red Hat Enterprise Linux
- Red Hat OpenShift
- Red Hat Ansible Automation Platform
- Cloud services
- See all products
Tools
- Training and certification
- My account
- Customer support
- Developer resources
- Find a partner
- Red Hat Ecosystem Catalog
- Red Hat value calculator
- Documentation
Try, buy, & sell
Communicate
About Red Hat
We’re the world’s leading provider of enterprise open source solutions—including Linux, cloud, container, and Kubernetes. We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.
Select a language
Red Hat legal and privacy links
- About Red Hat
- Jobs
- Events
- Locations
- Contact Red Hat
- Red Hat Blog
- Diversity, equity, and inclusion
- Cool Stuff Store
- Red Hat Summit