TOP ▲ itcore TOPTIPSkoganepod_disk.php  タグ:koganepod tool disk容量 ソース

koganepod tool disk容量 ソース | itcore 2021年

概要

1.disk容量表示
全容量 使用容量 残容量 使用率
2.中間zipファイルなどがあれば、2日経ったものが、毎日0時に削除されます。
[ls -lrta /home/tmp/download]
3.容量の大きな上位20ファイル識別子一覧(ファイル名はわかりません)。
 容量が足りないときはGIGAPODにログインしていくつか削除ください。

ソース

<?php
//----------------------------------------------------
// 初期設定
//----------------------------------------------------
session_start();
ini_set( 'display_errors', 1 ); // エラーを画面に出す。
date_default_timezone_set('Asia/Tokyo'); $dt = date("Y-m-d H:i:s"); // 日時
$self = basename($_SERVER['PHP_SELF']);
//------------------
// ログアウト処理
//------------------
if ("" != uForm("sub_logout")) {
  uSessionSet("is_login", "");
  uRedirect($self);
}
//-----------------
// ログイン処理
//-----------------
if ("" != uForm("sub_login")) {
  $id = uForm("id");
  $pw = uForm("pw");
  if ($id == "xxx" && $pw == "xxx") {
    uSessionSet("is_login", 1);
  } else {
    print "<font color=red>IDまたはPWが正しくありません。</font><br>\n";
  }
}
//------------------
// 画面出力
//------------------
echo '<meta charset="utf-8"/>';
echo "<title>koganepod tool 2020</title>\n";
echo "<form action=$self method=post>\n";
echo "<a href=$self>koganepod tool</a> $dt\n";
//------------------
// ログアウトボタン
//------------------
if ("" != uSession("is_login")) {
  print " <input type=submit name=sub_logout value='ログアウト'><br>\n";
}
echo "<br>\n";
//------------------
// ログイン画面
//------------------
if ("" == uSession("is_login")) {
  $id = uForm("id");
  $pw = uForm("pw");
  print "ID <input type=text name=id value='$id'><br>\n";
  print "PW <input type=password name=pw value='$pw'><br>\n";
  print "<input type=submit name=sub_login value='ログイン'><br>\n";
  exit;
}
//-------------------------------------
// メニュー
//-------------------------------------
echo "1.disk容量表示<br>\n";
$line = uCmd2("df -h | grep sda3"); // /dev/sda3 890G 296G 549G 36% /home
$line = uStrConvSp1($line);
//$line = str_replace("\n", "", $line);
$ar = explode(" ", $line);
//echo "line=".htmlspecialchars($line)."<br>\n";
//print_r($line);
//echo "hex=".uHexDump(substr($line, 8, 1))."<br>\n";
//echo "hex=".uHexDump($line)."<br>\n";
// print_r($ar); // Array ( [0] => /dev/sda3 [1] => 890G [2] => 296G [3] => 549G [4] => 36% [5] => /home )
echo "<table border=1>\n";
echo "<tr><th>全容量<th>使用容量<th>残容量<th>使用率\n";
echo "<tr>";
echo "<td align=right>".$ar[1];
echo "<td align=right>".$ar[2];
echo "<td align=right><font color=red>".$ar[3]."</font>";
echo "<td align=right>".$ar[4];
echo "</table><br>\n";

echo "2.中間zipファイルなどがあれば、2日経ったものが、毎日0時に削除されます。<br>\n";
// -rw-r--r-- 1 nboxadm nboxadm 20358515796 10月  7 14:48 2020 237f31f755e64e39d4750dde5007b0312fb70975.zip
// -rw-r--r-- 1 nboxadm nboxadm         138 10月  7 14:48 2020 237f31f755e64e39d4750dde5007b0312fb70975.zip.info
uCmd("ls -lrta /home/tmp/download");

echo "3.容量の大きな上位20ファイル識別子一覧(ファイル名はわかりません)。<br>\n";
echo " 容量が足りないときはGIGAPODにログインしていくつか削除ください。<br>\n";
$ret = uCmd2("du -sh /home/officeusers/disk1/exa_int/* | grep G|sort -nr|head -20");
$a_lines = explode("\n", $ret);
foreach ($a_lines as $line) {
  $line = str_replace("/home/officeusers/disk1/", "", $line);
  echo "$line<br>\n";
}

//-------------------------------------
// 共通関数
//-------------------------------------
// 改行コードCR,CRLF,LF をすべてLFに変換する。
function uToLF($s) {
    $cr = chr(13); $lf = chr(10);
    $s = str_replace("$cr$lf", "$lf", $s); // CRLF(win) -> LF
    $s = str_replace("$cr", "$lf", $s); // CR(mac) -> LF
    return $s;
}
// 共通関数 uForm()
function uForm($var) {
  if (isset($_POST[$var])) return $_POST[$var];
  if (isset($_GET[$var])) return $_GET[$var];
  return "";
}
function uCmd($cmd) {
  $ret = shell_exec($cmd);
  print "[" . htmlspecialchars($cmd) . "]<br>\n";
  print nl2br(htmlspecialchars($ret)) . "<br>\n";
}
function uCmd2($cmd) {
  $ret = shell_exec($cmd);
  return $ret;
}
function uSessionSet($var, $value) {
  $_SESSION[$var] = $value;
}
function uSession($var) {
  if (isset($_SESSION[$var])) return $_SESSION[$var];
  return "";
}
function uRedirect($url) {
  header("Location: $url");
  exit;
}
// 16進ダンプ
function uHexDump($text){
//echo "debug100 text=$text<br>\n";
    $s = "";
    for($i = 0; $i < strlen($text); $i++){
        $s1 = dechex(ord(substr($text, $i, 1)));
        if (1 == strlen($s1)) $s1 = "0$s1";
        $s .= $s1;
//echo "debug105 ".substr($text, $i, 1)."=$s1<br>\n";
    }
    return $s;
}
// 連続空白(半角全角混在)を1つの半角空空白にする。
function uStrConvSp1($text) {
  $text1 = "";
  $is_sp = false;
  $mblen = mb_strlen($text);
  for ($i = 0; $i < $mblen; $i++) {
    $s1 = mb_substr($text, $i, 1);
    if ($s1 == " " || $s1 == " ") {
      if ($is_sp) continue; // 連続空白を飛ばす。
      $text1 .= " "; // 半角空白をセット
      $is_sp = true; // 空白の途中
    } else {
      $text1 .= $s1; // 空白以外
      $is_sp = false; // 空白の途中でない
    }
  }
  return $text1;
}
?>