update remoto

parent e31273c7
......@@ -597,6 +597,45 @@ def run_update_and_report(request):
if request.method != 'POST':
return JsonResponse({'status': 'error', 'message': 'Only POST requests are allowed'}, status=405)
# Ruta absoluta al script en el home de geoint
script_path = '/home/geoint/m3_webInterface/update.sh'
if not os.path.exists(script_path):
return JsonResponse({'status': 'error', 'message': 'update.sh not found'}, status=404)
try:
# Ejecutar el script como usuario geoint usando sudo
result = subprocess.run(
['sudo', '-u', 'geoint', script_path], # Usar sudo para cambiar de usuario
check=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
text=True,
cwd='/home/geoint/m3_webInterface' # Opcional: establecer directorio de trabajo
)
output = {
'status': 'success',
'return_code': result.returncode,
'stdout': result.stdout,
'stderr': result.stderr
}
return JsonResponse(output)
except subprocess.CalledProcessError as e:
return JsonResponse({
'status': 'error',
'message': 'Script execution failed',
'return_code': e.returncode,
'stdout': e.stdout,
'stderr': e.stderr
}, status=500)
except Exception as e:
return JsonResponse({'status': 'error', 'message': str(e)}, status=500)
if request.method != 'POST':
return JsonResponse({'status': 'error', 'message': 'Only POST requests are allowed'}, status=405)
# Get the base directory (where manage.py is located)
base_dir = settings.BASE_DIR
script_path = os.path.join(base_dir, 'update.sh')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment