automated terminal push

This commit is contained in:
Your Name
2025-02-13 06:38:04 -05:00
parent 3a557ba120
commit dbd1d53cb4
3 changed files with 156 additions and 1 deletions

4
ping.bash Normal file
View File

@@ -0,0 +1,4 @@
touch /tmp/`date +%Y_%m_%d_%H_%M_%S`.dat
ls -lha /tmp/*dat

151
smart-cron-builder (copy 1).py Executable file
View File

@@ -0,0 +1,151 @@
import datetime
import subprocess
import socket
import os
import requests
def buildLogDirectory():
return "/root/Downloads/.logs/"
def buildLogFileName():
logFileDir = buildLogDirectory()
try:
response = requests.get("https://api.ipify.org?format=json") # Or another similar service
response.raise_for_status() # Check for HTTP errors (4xx or 5xx)
ip_data = response.json()
server_ip = ip_data['ip']
print("server_ip / ",ip_data['ip'])
server_hostname = socket.gethostname()
print("server_hostname / ",server_hostname)
node_id= logFileDir + "yankee-node-" + server_ip + "-" + server_hostname + ".log"
return node_id
except socket.gaierror:
return "!!error!!"
def buildCronExecuteTime():
current_time = datetime.datetime.now()
new_minute = (current_time.minute + 2) % 60 # The % operator performs the wrap-around
print("new_minute / ",new_minute)
new_hour = current_time.hour + (current_time.minute + 5) // 60 # Integer division for hour increment
print("new_hour / ",new_hour)
cron = str(new_minute) + " " + str(new_hour) + " " + "* * *"
return cron
def buildCronSituation():
return buildCronExecuteTime() +" python3 /yankee-gnome-fire-consumer/consumer.py >> " + buildLogFileName() + " 2>&1"
####
cronTiming = buildCronExecuteTime()
print("cronTiming / ",cronTiming)
##
logger = buildLogFileName();
print("logger / ",logger)
##
cronFile = buildCronSituation();
print()
print(cronFile)
print()
def createLogDir():
log_dir = buildLogDirectory()
print("creating log dir",log_dir)
try:
if not os.path.exists(log_dir): # Check if the directory exists
os.makedirs(log_dir) # Create the directory (and any necessary parent directories)
print(f"Directory '{log_dir}' created successfully.")
else:
print(f"Directory '{log_dir}' already exists.")
return True # Directory exists or was created successfully
except OSError as e:
print(f"Error creating directory '{log_dir}': {e}")
return False
##
def writeCrontabSituation():
file_path ="crontabX"
crontab_text = """
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
* * * * * python3 /yankee-gnome-fire-consumer/consumer.py >> /var/log/yankee-downloader.log 2>&1
* * * * * /tmp/ping2.bash >> /var/log/cron.log 2>&1"""
try:
# Check if the file exists and delete if it does
if os.path.exists(file_path):
os.remove(file_path)
with open(file_path, "w") as f:
sep="\n"
f.write("SHELL=/bin/bash")
f.write(sep)
f.write("PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin")
f.write(sep)
f.write(sep)
f.write(buildCronSituation())
f.write(sep)
f.write(sep)
f.write("* * * * * /tmp/ping.bash >> /var/log/cron.log 2>&1")
f.write(sep)
f.write(sep)
print(f"Crontab written to '{file_path}' successfully.")
return True
except OSError as e:
print(f"Error writing to file '{file_path}': {e}")
return False
####################
createLogDir()
writeCrontabSituation()

View File

@@ -130,7 +130,7 @@ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
f.write(sep)
f.write(sep)
f.write("* * * * * /tmp/ping.bash >> /var/log/cron.log 2>&1")
f.write("* * * * * /yankee-gnome-fire-consumer/ping.bash >> /var/log/cron.log 2>&1")
f.write(sep)
f.write(sep)