45 lines
1.5 KiB
Python
45 lines
1.5 KiB
Python
import paramiko
|
|
import os
|
|
import time
|
|
|
|
SERVER_HOST = "172.17.0.253"
|
|
SERVER_USER = "itguys"
|
|
PASSWORD = "vR7Ag$Pk"
|
|
|
|
def fetch_log(remote_path, local_path):
|
|
print(f"[*] Fetching {remote_path} -> {local_path}")
|
|
client = paramiko.SSHClient()
|
|
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
|
|
try:
|
|
client.connect(SERVER_HOST, username=SERVER_USER, password=PASSWORD)
|
|
|
|
# Usando sudo cat para garantir acesso
|
|
stdin, stdout, stderr = client.exec_command(f"echo '{PASSWORD}' | sudo -S tail -n 50 {remote_path}", get_pty=False)
|
|
|
|
# Captura a saída
|
|
content = stdout.read().decode('utf-8')
|
|
err = stderr.read().decode('utf-8')
|
|
|
|
if content:
|
|
with open(local_path, 'w', encoding='utf-8') as f:
|
|
f.write(content)
|
|
print(f" [OK] Salvo em {local_path}")
|
|
else:
|
|
print(f" [!] Nenhum conteúdo ou erro: {err}")
|
|
|
|
client.close()
|
|
except Exception as e:
|
|
print(f" [!] Erro: {e}")
|
|
|
|
if __name__ == "__main__":
|
|
if not os.path.exists("logs"):
|
|
os.makedirs("logs")
|
|
|
|
fetch_log("/etc/nginx/nginx.conf", "logs/remote_nginx.conf")
|
|
client = paramiko.SSHClient()
|
|
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
client.connect(SERVER_HOST, username=SERVER_USER, password=PASSWORD)
|
|
fetch_log("/var/log/nginx/ferreirareal.com.br.access.log", "logs/ferreirareal.access.log")
|
|
fetch_log("/var/log/nginx/access.log", "logs/global.access.log")
|