python package to send its own IP to another machine through ssh
Project description
Send IP
Python software to configure machines for sending their IP through ssh.
Installation
You are advised to create a virtual environment for this program:
conda create -n "send_ip_env"
conda activate send_ip_end
Run the following to install:
pip3 install send_ip
Running from a virtual environment will affect the python path that you supply to config.yaml
. See information in Usage section.
Usage
- Edit the
config.yaml
file to match your destination. These fields will be used toscp
into the target machine (user@ip:port
using passwordpass
to login).
user: target-user
ip: ip-address
pass: target-password
port: target-port #default port is usually 22
remote-path: target-folder # this folder will be created under /home/user might create errors for not linux users
refresh-freq: 15 # minutes for cron-job
python_path: /path/to/virtualenv/bin/python3 # the python path you supply here will affect where the code runs (e.g., /usr/bin/python3), see docs!
- Use the pacakge functions, for example:
from send_ip.send_ip import *
info_file = create_info()
send_info(info_file)
You can save this into a send_ip_script.py
and schedule this task to run automatically (see below)
Schedule task
Cron
You can setup send_ip_script.py
to run on a schedule (e.g., every 15 minutes). For example, this is the configuration for a raspberry pi (pi
) sending its IP to another machine (matias
) using config.yaml
.
from send_ip.setup_cron import setup_cron
setup_cron("/home/pi/send_ip/send_ip_script.py",15)
Current cron tab (same as $ crontab -l)
--------------------------------------
*/15 * * * * cd python3 /home/pi/send_ip/ && /home/pi/send_ip/send_ip_script.py # send ip to matias
Windows machines
Please refer to this example and file issues if having trouble.
For developers of send_ip
To install send_ip
and tools needed for tests, you can install into a virtualenvironment like so:
pip install -e .[dev]
Known issues
For a Raspberry pi installation, you might face this issue:
=============================DEBUG ASSISTANCE=============================
If you are seeing a compilation error please try the following steps to
successfully install bcrypt:
1) Upgrade to the latest pip and try again. This will fix errors for most
users. See: https://pip.pypa.io/en/stable/installing/#upgrading-pip
2) Ensure you have a recent Rust toolchain installed. bcrypt requires
rustc >= 1.56.0.
Python: 3.9.2
platform: Linux-5.15.56-v7l+-armv7l-with-glibc2.31
pip: n/a
setuptools: 65.5.0
setuptools_rust: 1.5.2
rustc: n/a
=============================DEBUG ASSISTANCE=============================
You might need:
sudo apt-get install build-essential cargo
You can also refer to this info in bcrypt.
You might also need to install or upgrade rustc
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Don't forget to restart your shell after installation of rust!!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file send_ip-0.0.10-py3-none-any.whl
.
File metadata
- Download URL: send_ip-0.0.10-py3-none-any.whl
- Upload date:
- Size: 6.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 62f83ee480d15e97d3835a58bedf3da7d37bc116fdff3abb19f4f6a6e7d9eb56 |
|
MD5 | bc7703300c872b24b03cf05c680c7759 |
|
BLAKE2b-256 | d8ad6b0059e1b0eb72e6ab30af9ac41e4e7d62ecf52c8c362cc6b428320d6f4d |