Hvordan kører jeg shell script fra Windows Webpage?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg vil udføre nogle batchjob fra min unix-boks thro shell scripts.


Scenarie:


Jeg har nogle shell scripts i min unix boks, vil køre disse scripts fra min Windows webside. Dette er at opnå ved at klikke på en knap fra websiden.


Tak på forhånd.

Bedste reference


Den rodet måde:



Opret en webserver på unix-boksen, brug det programmeringssprog du har lyst til (f.eks. PHP, Python, Perl) til at generere en passende webside, og gør det til et systemopkald til dit script, når det ser en postback. Et meget dumbed-down eksempel i PHP:


<?php
    if (isset($\_POST['do\_it'])) {
        $result = `my\_super\_shell\_script.sh`;
    }
?>
<html>
<head><title>Run a script</title></head>
<body>
    <form method="POST" action="">
        <button type="submit" name="do\_it" value="1">Do It!</button>
    </form>
    <pre>
    <?php echo $result; ?>
    </pre>
</body>
</html>


Dette er dog fuld af problemer. Mest af alt sikkerhed: Enhver, der kan sende en postanmodning til din side, kan udløse scriptet, hvilket normalt ikke er det, du vil have. Du skal træffe ekstra foranstaltninger for at sikre, at ingen har adgang til siden uden forudgående tilladelse.


Den røde løsning:



Bare brug ssh. Det giver dig ikke et websted, men ved hjælp af PuTTY (eller enhver anden ssh-klient) kan du simpelthen logge ind i Unix-boksen uden at udsætte den for hele verden.