A Python software to backup Linode configuration to a local folder or Linode Object Storage
Project description
What is YesterdayPy? - TLDR Version
What is YesterdayPy? - Longer Version
Technical Bits
Installation
pipx install yesterdaypy
pipx inject yesterdaypy boto3==1.35.99
python yesterdaypy/yesterdaypy.py
How to use it?
export LINODE_TOKEN=ABC
export AWS_ACCESS_KEY_ID=ABC
export AWS_SECRET_ACCESS_KEY=ABC
export AWS_ENDPOINT_URL=ABC
yesterdaypy
yesterdaypy --storage /home/user/backup/example/
yesterdaypy --storage s3://bucket-name
Docker
docker run -e LINODE_TOKEN \
--mount type=bind,src=.,dst=/usr/local/yesterdaypy \
leonardobdes/yesterdaypy:latest
Systemd Service
jq
$ jq . 1056933+20250222233724.json
{
"id": 1056933,
"label": "test-fw",
"created": "2024-10-22T22:38:26",
"updated": "2025-02-22T23:37:24",
"status": "enabled",
"rules": {
"inbound": [
{
"action": "ACCEPT",
"addresses": {
"ipv4": [
"1.1.1.1/32"
]
},
"ports": "22",
"protocol": "TCP",
"label": "test-ssh",
"description": null
}
],
"inbound_policy": "DROP",
"outbound": [],
"outbound_policy": "ACCEPT",
"version": 3,
"fingerprint": "cb6bf75b"
},
"tags": [],
"entities": [
{
"id": 72473810,
"type": "linode",
"label": "ubuntu-gb-lon",
"url": "/v4/linode/instances/72473810"
}
]
}
$ jq .rules.inbound 1056933+20250222233724.json
[
{
"action": "ACCEPT",
"addresses": {
"ipv4": [
"1.1.1.1/32"
]
},
"ports": "22",
"protocol": "TCP",
"label": "test-ssh",
"description": null
}
]
jd
$ jd 1056933+20250222233724.json 1056933+20250314231035.json
@ ["entities",0]
[
- {"id":72473810,"label":"ubuntu-gb-lon","type":"linode","url":"/v4/linode/instances/72473810"}
]
@ ["rules","fingerprint"]
- "cb6bf75b"
+ "69cc1741"
@ ["rules","inbound",1]
{"action":"ACCEPT","addresses":{"ipv4":["1.1.1.1/32"]},"description":null,"label":"test-ssh","ports":"22","protocol":"TCP"}
+ {"action":"ACCEPT","addresses":{"ipv4":["0.0.0.0/0"],"ipv6":["::/0"]},"description":null,"label":"icmp","protocol":"ICMP"}
]
@ ["rules","version"]
- 3
+ 4
@ ["updated"]
- "2025-02-22T23:37:24"
+ "2025-03-14T23:10:35"
To do
- Products
Add more products. Also, some objects have other obejcts under it (Linode Configuration Profile).
- Thread
Add threads for large configurations.
- Mac OS
Test on MacOS, it should work.
- Windows
Need some changes to work on Windows.
Other software ideas
- YesterdayPy_Clone
Clone an object with a new label (name).
- YesterdayPy_Restore
Restore the object to the configuration of the JSON file.
How to report bugs?
How to request new functionalities?
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file yesterdaypy-1.1.5.tar.gz.
File metadata
- Download URL: yesterdaypy-1.1.5.tar.gz
- Upload date:
- Size: 9.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9423b1f4343fb0cecb552f316ea8d48b3dadcc4575c7231a1b4187668a1eaab3
|
|
| MD5 |
09b87bef3dd4dc8dd79d2fc157ed6c78
|
|
| BLAKE2b-256 |
4265fa7e464af90f40367ce2d49c5e29dde3b2038db00524374be642b4109482
|
File details
Details for the file yesterdaypy-1.1.5-py3-none-any.whl.
File metadata
- Download URL: yesterdaypy-1.1.5-py3-none-any.whl
- Upload date:
- Size: 8.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e6d0a3439992ac7010d7adb00ba4014dda0d8b79cec25f3f0b441e12f79964aa
|
|
| MD5 |
1ff9faafc6f702a9f5018af3dc8eeeb8
|
|
| BLAKE2b-256 |
d411cdac651457da5bd8179059a50a38cea9a9d3adeedb209662cd36536c62d0
|