jahlives
Benutzer
- Mitglied seit
- 19. Aug 2008
- Beiträge
- 18.275
- Punkte für Reaktionen
- 4
- Punkte
- 0
Zwar noch kein spk Paket , aber ein, zwei features eingebaut:
1) Freigaben werden direkt aus der smb.conf ausgelesen
2) Abfangen wenn Freigabe keinen .recycle oder einen leeren .recycle hat
3) Probleme beim Auslesen der smb.conf abgefangen resp Warnung wenn keine Freigaben gefunden wurden
4) Formular Buttons werden nur angezeigt, wenn etwas zum löschen gefunden wurde
Anbei mal wieder der aktuellste Code
So schaut es momentan aus
Gruss
tobi
1) Freigaben werden direkt aus der smb.conf ausgelesen
2) Abfangen wenn Freigabe keinen .recycle oder einen leeren .recycle hat
3) Probleme beim Auslesen der smb.conf abgefangen resp Warnung wenn keine Freigaben gefunden wurden
4) Formular Buttons werden nur angezeigt, wenn etwas zum löschen gefunden wurde
Anbei mal wieder der aktuellste Code
PHP:
<?php
$liste = array();
$return = array();
$tmp = array();
$recycle = '.recycle';
$smbpath = '/opt/etc/samba/smb.conf';
exec('cat '.$smbpath,$tmp);
foreach($tmp as $wert){
if(stripos($wert,'path=') !== false && strpos($wert,'%') === false){
$liste[] = trim(str_replace('path=','',$wert));
}
}
if(count($liste) < 1){
die('Es wurden keine smb Freigaben gefunden. Zumindest scheint nix in der smb.conf gewesen zu sein. Stimmt denn dieser Pfad: <strong>'.$smbpath.'</strong>?');
}
foreach($liste as $wert){
$handle = @opendir($wert.'/'.$recycle);
if($handle === false){
$return[$wert] = false;
continue;
}
$return[$wert] = array();
while (false !== ($file = readdir($handle))) {
if($file != '..' && $file != '.'){
$return[$wert][$file] = array();
$size = exec('du -sch '.$wert.'/'.$recycle.'/'.$file);
$return[$wert][$file] = $size;
}
}
}
if(!isset($_POST['del']) || !isset($_POST['send'])){
?>
<html>
<head>
<title>Manage the Samba Garbage</title>
</head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
<?php
$count = 0;
foreach($return as $key=>$wert){
echo $key;
echo '<br />';
if($wert === false){
echo ' <strong>Diese Freigabe besitzt keinen Papierkorb</strong><br /><br />';
continue;
}elseif(count($wert) === 0){
echo ' <strong>Diese Freigabe besitzt einen leeren Papierkorb</strong><br /><br />';
continue;
}
foreach($wert as $schl=>$bla){
$count++;
echo ' '.$schl.' '.$bla.'<input type="checkbox" name="del[]" value="'.$key.'/'.$recycle.'/'.$schl.'" /><br />';
}
echo '<br />';
}
if($count > 0){
?>
<br />
<input type="submit" name="send" value="Löschen" /> <input type="reset" value="Stop" />
<?php
}else{
?>
</form>
</body>
</html>
<?php
}
}else{
foreach($_POST['del'] as $wert){
if(file_exists($wert)){
$check = false;
foreach($liste as $w){
$check = strpos($wert,$w);
if($check === 0) break;
}
if($check === 0){
exec('rm -R '.$wert);
}else{
die('Hacker Alarm ;-)');
}
}else{
die('Hacker Alarm ;-)');
}
}
header('Location: '.$_SERVER['PHP_SELF']);
exit;
}
?>
Gruss
tobi