Python subprocess module is quite helpful in running local commands. While Fabric module can also be used to run local commands, Fabric module is overkill to run local commands on the system. Fabric module is quite useful in running commands on remote system via SSH.
Whereas subprocess mnodule is quite ideal to execute local commands on the VM, device or local server.
Python code example below to run local commands with try exception to capture any errors.
Code below will run the "xz" command to zip the file on the specified path.
xz command will replace the specified file as an xz file. xz file won't create a new file.
Python code below uses "tar" command to zipped the file and it doesn't use any try exception to capture any errors but the code will display any errors captured.
Error will likely occur, if the path requires a root elevation and Python program is not executed without any proper privileges.
Or it will also show an error, if the Tar syntax is wrong.
When using Tar, you must specify both the name of the compressed file to be created and the path or location of the file to compress. The compressed file’s name does not need to match the name of the original file.
Unlike "xz" command, tar will not replace the file but will create a new file.
With the tar command the existing file will still be there but will just create zipped backup file.
For xz command, the original file will be zipped and won't create a new one.
In summary, Tar is used for creating backups, while xz compresses files to save storage space. Choice is yours.
Example code below runs a Tar command, using Python subprocess module.
Sample image output:
Do what is right and good before the eyes of God. Be righteous and look forward for the things in Heaven.
The world you inhabit and the things you cherish are but a passing shadow.
Proverbs 15:9: "The way of the wicked is an abomination to the Lord, but He loves him who pursues righteousness."
Whereas subprocess mnodule is quite ideal to execute local commands on the VM, device or local server.
Python code example below to run local commands with try exception to capture any errors.
Code below will run the "xz" command to zip the file on the specified path.
xz command will replace the specified file as an xz file. xz file won't create a new file.
import subprocess
try:
# Run the xz command
subprocess.run(['xz', '/tmp/app_log.log'], check=True)
print("File successfully compressed.")
except subprocess.CalledProcessError as e:
print(f"Error: Command failed with exit status {e.returncode}")
except FileNotFoundError:
print("Error: xz command not found. Ensure xz is installed.")
Sample image output:
Python code below uses "tar" command to zipped the file and it doesn't use any try exception to capture any errors but the code will display any errors captured.
Error will likely occur, if the path requires a root elevation and Python program is not executed without any proper privileges.
Or it will also show an error, if the Tar syntax is wrong.
When using Tar, you must specify both the name of the compressed file to be created and the path or location of the file to compress. The compressed file’s name does not need to match the name of the original file.
Unlike "xz" command, tar will not replace the file but will create a new file.
With the tar command the existing file will still be there but will just create zipped backup file.
For xz command, the original file will be zipped and won't create a new one.
In summary, Tar is used for creating backups, while xz compresses files to save storage space. Choice is yours.
Example code below runs a Tar command, using Python subprocess module.
import subprocess
# Run the tar command
capture_result = subprocess.run(['tar', 'czvf', '/tmp/app_log.log.tar.gz', '/tmp/app_log.log'], check=True)
# Print the output and errors (if any)
print("Output: [check output if successful or not]")
print(capture_result.stdout)
print("Errors:")
print(capture_result.stderr)
# Print the return code
print("Return Code:", capture_result.returncode)
Sample image output:
Do what is right and good before the eyes of God. Be righteous and look forward for the things in Heaven.
The world you inhabit and the things you cherish are but a passing shadow.
Proverbs 15:9: "The way of the wicked is an abomination to the Lord, but He loves him who pursues righteousness."
Comments
Post a Comment