Je construis un contrôle web qui permettra à notre personnel informatique junior de gérer le firmware de nos téléphones LifeSize. À l'heure actuelle, nous faisons cela en téléchargeant le nouveau firmware sur un serveur central, puis en exécutant cette commande pour chaque téléphone, nous voulons améliorerComment remplacer un outil SSH en ligne de commande par un appel Web PHP?
cat new_firmware.cramfs | ssh -T [email protected] "upgrade all"
Cela me demande le mot de passe, puis télécharge le firmware. Fonctionne comme un champion, mais il prend quelqu'un à l'aise avec les outils CLI, l'accès SSH à ce serveur, et la patience de rechercher toutes les adresses IP de tous les téléphones. Il semble que nous soyons bloqués par une connexion par mot de passe, le test avec des certificats a été désastreux. L'appareil utilisé n'est pas un ordinateur à part entière, c'est un téléphone qui exécute un minuscule système d'exploitation intégré.
Je travaille sur un script PHP qui peut itérer sur tous les téléphones, mais fondamentalement dupliquer cette fonction. Voilà ce que j'ai jusqu'à présent:
<?php
$firmware_filename = "new_firmware.cramfs";
$firmware_stream = fopen($firmware_filename,"rb");
$ssh_connection = ssh2_connect("1.1.1.1", 22);
ssh2_auth_password($ssh_connection, "cli", "password");
$ssh_stream = ssh2_exec($ssh_connection,'upgrade all');
$written = stream_copy_to_stream($firmware_stream,$ssh_stream,-1);
if($written != filesize($full_filename)){
echo "The file is " . filesize($firmware_filename) . " bytes, I only wrote $written" . PHP_EOL;
}else{
echo "All Good" . PHP_EOL;
}
?>
Mais revient toujours
The file is 26988590 bytes, I only wrote 8192
Et la mise à jour ne se déroule pas correctement.
Pourquoi ne pas utiliser Lifesize UVC Manager ou Lifesize Control dans ce but? – biplav