Synology-Forum.nl

Tweaks / Addons A.K.A. The Underground => 3rd party apps integratie in DSM => Topic gestart door: wizjos op 27 oktober 2008, 23:09:32

Titel: Automate (div. geintjes en services)
Bericht door: wizjos op 27 oktober 2008, 23:09:32
Hoi,

Ook weer geïmporteerd is deze:

(http://94.212.224.81/images/syno/automate.jpg)

Op zich niet allemaal zo wereldschokkend :mrgreen: ware het niet dat je hiermee ook een schijfcheck kunt uitvoeren (zelf nog niet getest!) en services kunt stoppen en herstarten... Ik heb er gauw een tweetal bijgemaakt voor het herstarten van Crond en voor SABnzbd+

application.cfg
text = Automate
description = Automatiseer je Syno
type = embedded
path = /phpsrc/automate/automate.php

automate.php:
<?php
putenv
('HTTP_COOKIE='&#46;$_SERVER['HTTP_COOKIE'&#93;);
putenv('REMOTE_ADDR='&#46;$_SERVER['REMOTE_ADDR'&#93;);
$user=exec('/usr/syno/synoman/webman/modules/authenticate&#46;cgi');
if(
$user != 'admin'){
    
header("HTTP/1&#46;0 403 Forbidden");
    exit;
}
if (
$_REQUEST['action'&#93; != '') {
  
if ($_REQUEST['action'&#93; == 'print') exec('echo -e "TESTPAGE\f" >/dev/usb/lp0');
  
elseif ($_REQUEST['action'&#93; == 'fsck0')
    
{ print '<pre>';passthru('fsck&#46;ext3 -F -n /dev/md0');print '</pre>'; }
  elseif (
$_REQUEST['action'&#93; == 'fsck2')
    
{ print '<pre>';passthru('fsck&#46;ext3 -F -n /dev/md2');print '</pre>'; }
  elseif (
$_REQUEST['action'&#93; == 'telnetd') exec('killall telnetd');
  
elseif ($_REQUEST['action'&#93; == 'sysapache') exec('/usr/syno/etc&#46;defaults/rc&#46;d/S97apache-sys&#46;sh restart');
  
elseif ($_REQUEST['action'&#93; == 'userapache') exec('/usr/syno/etc&#46;defaults/rc&#46;d/S97apache-user&#46;sh restart');
  
elseif ($_REQUEST['action'&#93; == '3rdapache') exec('/opt/sbin/httpd -k restart');
  
elseif ($_REQUEST['action'&#93; == 'mysql') exec('/usr/syno/etc&#46;defaults/rc&#46;d/S21mysql&#46;sh restart');
  
elseif ($_REQUEST['action'&#93; == 'crond') exec('/usr/syno/etc&#46;defaults/rc&#46;d/S04crond&#46;sh restart');
  
elseif ($_REQUEST['action'&#93; == 'SABnzbd') exec('/usr/syno/etc&#46;defaults/rc&#46;d/S99SABnzbd&#46;sh restart');
  
else
    
exec('echo \\'&#46;$_REQUEST['action'&#93;&#46;' >/dev/ttyS1');
  
$_REQUEST['action'&#93; = '';
}
?>

<html><head><title>automate</title>
<style>body,input{font:11px Verdana;}input{width:140px}fieldset{border:1px solid #bbb}</style>
<script>function $(e) {return document.getElementById(e);}</script>
</head><body>
<form id="f" name="f" action="automate.php">
<input type="hidden" id="action" name="action" value="" />
<fieldset><legend>Status LED</legend>
<input type="button" value="off" onclick="$('action').value='7';submit();">
<input type="button" value="green on" onclick="$('action').value='8';submit();">
<input type="button" value="green blink" onclick="$('action').value='9';submit();">
<input type="button" value="orange on" onclick="$('action').value=':';submit();">
<input type="button" value="orange blink" onclick="$('action').value=';';submit();">
</fieldset>
<fieldset><legend>Copy LED</legend>
<input type="button" value="off" onclick="$('action').value='B';submit();">
<input type="button" value="on" onclick="$('action').value='@';submit();">
<input type="button" value="blink" onclick="$('action').value='A';submit();">
</fieldset>
<fieldset><legend>Power LED</legend>
<input type="button" value="off" onclick="$('action').value='6';submit();">
<input type="button" value="on" onclick="$('action').value='4';submit();">
<input type="button" value="blink" onclick="$('action').value='5';submit();">
</fieldset>
<fieldset><legend>Beeper</legend>
<input type="button" value="short" onclick="$('action').value='2';submit();">
<input type="button" value="long" onclick="$('action').value='3';submit();">
</fieldset>
<fieldset><legend>Printer</legend>
<input type="button" value="print testpage" onclick="$('action').value='print';submit();">
</fieldset>
<fieldset><legend>File System Check</legend>
<input type="button" value="fsck /dev/md0" onclick="$('action').value='fsck0';submit();">
<input type="button" value="fsck /dev/md2" onclick="$('action').value='fsck2';submit();">
</fieldset>
<fieldset><legend>Daemons</legend>
<input type="button" value="kill telnetd" onclick="$('action').value='telnetd';submit();">
<input type="button" value="restart sys-apache" onclick="$('action').value='sysapache';submit();">
<input type="button" value="restart user-apache" onclick="$('action').value='userapache';submit();">
<input type="button" value="restart 3rd-apache" onclick="$('action').value='3rdapache';submit();">
<input type="button" value="restart MySql" onclick="$('action').value='mysql';submit();">
<input type="button" value="restart Crond" onclick="$('action').value='crond';submit();">
<input type="button" value="restart SABnzbd" onclick="$('action').value='SABnzbd';submit();">
</fieldset>
</form>
</body></html>

Vooral die lampjes vond ik geweldig (helaas is mijn CS niet zo'n kerstboom als sommige andere modellen) :(
Simpel doch doeltreffend, maar als je niet weet wat een knop precies doet, wees er dan voorzichtig mee :mrgreen:  

Voor wie even een oog op de code slaat, deze is eigenlijk heel simpel van opbouw en zelf uit te breiden/aan te passen...

Succes!

Wizjos
Titel: Re: Automate (div. geintjes en services)
Bericht door: Maradona10 op 29 augustus 2009, 12:35:05
Cool script. Ik heb een vraag.

Ik heb de 209+, maar ik heb 4 groene status lampjes. Met dit script krijg ik alleen de bovenste LED uit.
Hoe kan ik dat uitbreiden?
Titel: Re: Automate (div. geintjes en services)
Bericht door: wizjos op 29 augustus 2009, 13:21:54
Maradona,

Dat zou ik zo niet weten... Als je goed naar het script kijkt zie je dat er telkens de opdracht 'echo teken >/dev/ttyS1' wordt gegeven. Enig experimenteren (geef de opdracht domweg op de prompt op) met andere tekens dan die in het script staan zou de truc denk ik moeten doen. Alleen welke dat zijn weet ik niet. Als je ze gevonden hebt wil ik graag van je horen welke tekens het zijn!

Succes,

Wizjos
Titel: Re: Automate (div. geintjes en services)
Bericht door: Maradona10 op 29 augustus 2009, 15:36:46
Citaat van: "wizjos"
Maradona,

Dat zou ik zo niet weten... Als je goed naar het script kijkt zie je dat er telkens de opdracht 'echo teken >/dev/ttyS1' wordt gegeven. Enig experimenteren (geef de opdracht domweg op de prompt op) met andere tekens dan die in het script staan zou de truc denk ik moeten doen. Alleen welke dat zijn weet ik niet. Als je ze gevonden hebt wil ik graag van je horen welke tekens het zijn!

Succes,

Wizjos

Ik heb gekeken wat bij de 4 groene lampjes staat.
Dat zijn:
-Status
-LAN
-Disk1
-Disk2

Heb geen idee wat voor code ik daarvoor zou moeten gebruiken.  Hoe zou ik dat moeten kunnen zien?
Titel: Re: Automate (div. geintjes en services)
Bericht door: wizjos op 31 augustus 2009, 09:01:54
Citaat van: "Maradona10"
Heb geen idee wat voor code ik daarvoor zou moeten gebruiken. Hoe zou ik dat moeten kunnen zien?

Dat schreef ik dus, ik weet het ook niet. Domweg proberen dus... Alhoewel ik me afvraag of de lampjes voor LAN en de disks wel uit kunnen....

Groet,

Wizjos
Titel: Re: Automate (div. geintjes en services)
Bericht door: motoindo op 01 september 2009, 00:15:22
eh, sorry gurus maareh bij mij krijg ik als ik dat scriptje in mijn webfolder zet de melding:

Citaat
Warning: exec() [function.exec]: PHP exec disable. in /volume1/web/automate.php on line 4
Warning: Cannot modify header information - headers already sent by (output started at /volume1/web/automate.php:4) in /volume1/web/automate.php on line 6

hoe vertel ik mijn ds dat ie wel exec calls mag doen ?
Titel: Re: Automate (div. geintjes en services)
Bericht door: wizjos op 01 september 2009, 09:14:24
Motoindo,

Dan dien je de 3rd party apps handleiding (http://www.synology-forum.nl/viewtopic.php?f=83&t=2182) te doorworstelen :mrgreen:

Succes!

Wizjos
Titel: Re: Automate (div. geintjes en services)
Bericht door: motoindo op 20 september 2009, 14:02:42
dank voor de link...ga ik doen !
Citaat
Wordt tijd, want het lijkt er bijna op dat  ik (http://www.synology-forum.nl/viewtopic.php?f=83&t=2182#msg9512) deze sectie in m'n eentje zit te vullen
Zou je graag helpen maar weet meer van win dan *nix, probeer wel mijn achterstand in te lopen.