Передайте переменную из php в скрипт на python и запустите os.system ()

Мне нужно установить дату и время моего Raspberry Pi с помощью сценария PHP.
После некоторых исследований я использую php-скрипт для вызова Python-скрипта.
Мой datetime.php:

$date = '2015-09-05';

$output = shell_exec('/usr/bin/python/home/pi/datalogger/modules/sys/write_date.py ' . $date);

echo $output;

os.system("sudo date -s "+"'"+date_object+"'")

write_date.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import sys
from datetime import datetime

def main():
date=sys.argv[1]
time='22:04'
print(date) #for debug

string_date=date+' '+time+':00'
date_object2=datetime.strptime(string_date, "%Y-%m-%d %H:%M:%S")
date_object=date_object2.strftime("%a %b %d %H:%M:%S"+" UTC "+"%Y")
os.system("sudo date -s "+"'"+date_object+"'")

if __name__ == '__main__':
main()

Когда я обновляю свой datetime.php, у меня есть печать даты, поэтому скрипт работает … проблема в том, что моя дата не обновляется. Но если я запускаю write_date.py в командной строке, я могу обновить дату и время малины.

0

Решение

Пример установки даты через PHP в системе, основанной на Linux (E.G. Raspberry Pi):

<?php
date_default_timezone_set('UTC');
$dt = date("D M j G:i:s T Y", strtotime("2015-09-05 22:04"));
$output = shell_exec('sudo date -s "$dt"');
?>

Также strptime() а также strftime() существуют в PHP:

http://php.net/manual/en/function.strptime.php

http://php.net/manual/en/function.strftime.php

Если копнуть немного глубже, возможно, вам придется разрешить вашему веб-серверу работать /bin/date через регулировку в /etc/sudoers файл. Можно добавить:

apache <hostname> = (root) NOPASSWD: /bin/date

Подтвердите <hostname> запустив cat /etc/hostname, Я подозреваю, что это малина или малина. Измените его в соответствии с вашим устройством.

Чтобы потом запустить, мы вносим одно небольшое изменение в скрипт:

$output = shell_exec('sudo /bin/date -s "$dt"');

Это должно сделать это. Нашел эту информацию здесь: https://unix.stackexchange.com/questions/44865/change-server-date-using-php

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]