Merge pull request #1456 from bergware/master

rc.inet1: add "status" command
This commit is contained in:
tom mortensen
2023-10-12 12:50:35 -07:00
committed by GitHub
6 changed files with 94 additions and 92 deletions

View File

@@ -678,9 +678,11 @@ function hideShow() {
var id = tbody.parent().prop('id');
if ($(this).prop('checked')) {
tbody.show();
tbody.prev().show();
count[id]++;
} else {
tbody.hide();
tbody.prev().hide();
inactive.push(sort[n]);
}
n++;
@@ -700,6 +702,27 @@ function hideShow() {
!-->
</div>
<div id="dialogWindow"></div>
<div markdown="1" id="templateClone" class="template">
<table>
<tr><td>_(VM Being Cloned)_:</td><td><span id="VMBeingCloned"></span></td></tr>
<tr><td>_(New VM)_:</td><td><input type="text" id="target" autocomplete="off" spellcheck="false" value="" onclick="this.select()"></td></tr>
<tr><td>_(Overwrite)_:</td><td><input type="checkbox" id="Overwrite" value="" ></td></tr>
<tr hidden><td>_(Start Cloned VM)_:</td><td><input type="checkbox" id="Start" value="" ></td></tr>
<tr hidden><td>_(Edit VM after clone)_:</td><td><input type="checkbox" id="Edit" value="" ></td></tr>
<tr><td>_(Check Free Space)_:</td><td><input type="checkbox" id="Free" value="" ></td></tr>
</table>
</div>
<div id="dialogWindow2"></div>
<div markdown="1" id="templatesnapshotcreate" class="template">
<table id="snapshot">
<tr><td>_(VM Name)_:</td><td><label id="VMName"></label></td></tr>
<tr><td>_(Snapshot Name)_:</td><td><input type="text" id="targetsnap" autocomplete="off" spellcheck="false" value="--generate" onclick="this.select()">_(Check free space)_:<input type="checkbox" id="targetsnapfspc" checked></td></tr>
<tr><td>_(Description)_:</td><td><input type="text" id="targetsnapdesc" autocomplete="off" spellcheck="false" value="" onclick="this.select()"></td></tr>
</table>
</div>
<script>
Number.prototype.pad = function(size){var s=String(this);while(s.length<(size||2)){s='0'+s;}return s;}
Array.prototype.tail = function(t){return this.slice(-t).map(function(o){return o.y;}).join(';');}
@@ -707,7 +730,7 @@ String.prototype.build = function(){return this.replace(/\n(<!--!|!-->)\n/g,'');
String.prototype.md5 = function() {
// Original copyright (c) Paul Johnston & Greg Holt.
var hc = '0123456789abcdef';
function rh(n){var j,s='';for(j=0;j<=3;j++) s+=hc.charAt((n>>(j*8+4))&0x0F)+hc.charAt((n>>(j*8))&0x0F);return s;}
function rh(n){var j,s='';for (j=0;j<=3;j++) s+=hc.charAt((n>>(j*8+4))&0x0F)+hc.charAt((n>>(j*8))&0x0F);return s;}
function ad(x,y){var l=(x&0xFFFF)+(y&0xFFFF);var m=(x>>16)+(y>>16)+(l>>16);return (m<<16)|(l&0xFFFF);}
function rl(n,c){return (n<<c)|(n>>>(32-c));}
function cm(q,a,b,x,s,t){return ad(rl(ad(ad(a,q),ad(x,t)),s),b);}
@@ -716,12 +739,12 @@ String.prototype.md5 = function() {
function hh(a,b,c,d,x,s,t){return cm(b^c^d,a,b,x,s,t);}
function ii(a,b,c,d,x,s,t){return cm(c^(b|(~d)),a,b,x,s,t);}
function sb(x) {
var i;var nblk=((x.length+8)>>6)+1;var blks=new Array(nblk*16);for(i=0;i<nblk*16;i++) blks[i]=0;
for(i=0;i<x.length;i++) blks[i>>2]|=x.charCodeAt(i)<<((i%4)*8);
var i;var nblk=((x.length+8)>>6)+1;var blks=new Array(nblk*16);for (i=0;i<nblk*16;i++) blks[i]=0;
for (i=0;i<x.length;i++) blks[i>>2]|=x.charCodeAt(i)<<((i%4)*8);
blks[i>>2]|=0x80<<((i%4)*8);blks[nblk*16-2]=x.length*8;return blks;
}
var i,x=sb(''+this),a=1732584193,b=-271733879,c=-1732584194,d=271733878,olda,oldb,oldc,oldd;
for(i=0;i<x.length;i+=16) {olda=a;oldb=b;oldc=c;oldd=d;
for (i=0;i<x.length;i+=16) {olda=a;oldb=b;oldc=c;oldd=d;
a=ff(a,b,c,d,x[i+ 0], 7, -680876936);d=ff(d,a,b,c,x[i+ 1],12, -389564586);c=ff(c,d,a,b,x[i+ 2],17, 606105819);
b=ff(b,c,d,a,x[i+ 3],22,-1044525330);a=ff(a,b,c,d,x[i+ 4], 7, -176418897);d=ff(d,a,b,c,x[i+ 5],12, 1200080426);
c=ff(c,d,a,b,x[i+ 6],17,-1473231341);b=ff(b,c,d,a,x[i+ 7],22, -45705983);a=ff(a,b,c,d,x[i+ 8], 7, 1770035416);
@@ -782,6 +805,7 @@ var netline = $.cookie('netline')||30;
var update2 = true;
var box = null;
var startup = true;
var stopgap = '<thead class="stopgap"><tr><td class="stopgap"></td></tr></thead>';
var options_cpu = {
series:[{name:'load', data:cpu.slice()}],
@@ -1216,6 +1240,7 @@ function sortTables() {
}
}
});
$('table.dashboard tbody').before(stopgap);
}
function addProperties() {
$('div.frame tbody.system').addClass('sortable').attr('sort','_system_information_'.md5());
@@ -1248,6 +1273,7 @@ function showContent() {
var id = tbody.parent().prop('id');
count[id]--;
tbody.hide();
tbody.prev().hide();
}
}
var hidden = $.cookie('hidden_content');
@@ -1309,6 +1335,7 @@ function dismiss(button) {
var tile = table.parent();
var inactive = $.cookie('inactive_content');
tbody.hide();
tbody.prev().hide();
if (table.find('tbody:visible').length>0) tile.show(); else tile.hide();
inactive = inactive==null ? [] : inactive.split(';');
inactive.push(tbody.attr('sort'));
@@ -1357,6 +1384,7 @@ function contentMgmt() {
}
var sortableHelper = function(e,ui){
ui.prev().remove();
ui.find('tr:first').children().each(function(){$(this).width($(this).width());});
return ui;
};
@@ -1372,16 +1400,24 @@ function LockButton() {
$('tbody.sortable').css({'cursor':'move'});
$('div.nav-item.LockButton span').text("_(Lock sortable items)_");
$('#db-box1,#db-box2,#db-box3').sortable({connectWith:'#db-box1,#db-box2,#db-box3'});
$('table.dashboard').sortable({helper:sortableHelper,items:'.sortable',cursor:'grab',delay:100,opacity:0.5,zIndex:9999,forcePlaceholderSize:true,
$('table.dashboard').sortable({helper:sortableHelper,items:'.sortable',cursor:'grab',opacity:0.6,placeholder:'dashboard-sortable',zIndex:9999,forceHelperSize:true,forcePlaceholderSize:true,
receive:function(e,ui){
var table = ui.sender, index = [];
var tile = table.parent();
if (table.find('tbody:visible').length > 0) tile.show(); else tile.hide();
var gap = ui.item.prev();
if (table.find('tbody:visible').length > 0) {
tile.show();
gap.show();
} else {
tile.hide();
gap.hide();
}
table.find('tbody').each(function(){index.push($(this).attr('sort'));});
$.cookie(table.prop('id'),index.join(';'),{expires:3650});
},
stop:function(e,ui){
var table = ui.item.parent(), index = [];
if (ui.item.prev().html().search('stopgap')>0) ui.item.after(stopgap); else ui.item.before(stopgap);
table.find('tbody').each(function(){index.push($(this).attr('sort'));});
$.cookie(table.prop('id'),index.join(';'),{expires:3650});
}});
@@ -1612,55 +1648,3 @@ function VMClone(uuid, name){
dialogStyle();
}
</script>
<div id="dialogWindow"></div>
<div markdown="1" id="templateClone" class="template">
<html <?=$display['rtl']?>lang="<?=strtok($locale,'_')?:'en'?>">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="format-detection" content="telephone=no">
<meta name="viewport" content="width=1600">
<meta name="robots" content="noindex, nofollow">
<meta name="referrer" content="same-origin">
<link type="text/css" rel="stylesheet" href="<?autov("/webGui/styles/default-fonts.css")?>">
</head>
<body>
<br>
<table>
<tr><td>_(VM Being Cloned)_:</td>
<td><span id="VMBeingCloned"></span></td></tr>
<tr><td>_(New VM)_:</td>
<td><input type="text" id="target" autocomplete="off" spellcheck="false" value="" onclick="this.select()"></td></tr>
<tr><td>_(Overwrite)_:</td>
<td><input type="checkbox" id="Overwrite" value="" ></td></tr>
<tr hidden><td>_(Start Cloned VM)_:</td>
<td><input type="checkbox" id="Start" value="" ></td></tr>
<tr hidden><td>_(Edit VM after clone)_:</td>
<td><input type="checkbox" id="Edit" value="" ></td></tr>
<tr><td>_(Check Free Space)_:</td>
<td><input type="checkbox" id="Free" value="" ></td></tr>
</table>
</body>
</html>
</div>
<div id="dialogWindow2"></div>
<div markdown="1" id="templatesnapshotcreate" class="template">
<table id='snapshot'>
<br><br>
<tr><td> _(VM Name)_:</td><td>
<label id="VMName"></label></td></tr>
<tr><td>_(Snapshot Name)_:</td><td>
<input type="text" id="targetsnap" autocomplete="off" spellcheck="false" value="--generate" onclick="this.select()">
_(Check free space)_:
<input type="checkbox" id="targetsnapfspc" checked></td></tr>
<tr><td>_(Description )_:</td><td>
<input type="text" id="targetsnapdesc" autocomplete="off" spellcheck="false" value="" onclick="this.select()"></td></tr>
</table>
</div>

View File

@@ -154,14 +154,15 @@ table.share_status tbody tr.warn{color:#e68a00}
table.share_status.fixed tr>td+td{min-width:39px;font-size:1.1rem;text-align:center;padding:0}
table.share_status.table{margin-top:36px}
table.share_status.table tr>td{width:50%}
table.share_status.dashboard{margin:0;border:1px solid #606e7f}
table.share_status.dashboard tbody{border:1px solid #606e7f}
table.share_status.dashboard tr:first-child>td{height:3.6rem;padding-top:12px;font-size:1.6rem;font-weight:bold;letter-spacing:1.8px;text-transform:none;vertical-align:top}
table.share_status.dashboard tr:last-child>td{padding-bottom:20px}
table.share_status.dashboard tr.last>td{padding-bottom:20px}
table.share_status.dashboard{margin:0;border:none;background-color:#D7DBDD}
table.share_status.dashboard tbody{border:none}
table.share_status.dashboard tr:first-child td{height:3.6rem;padding-top:12px;font-size:1.6rem;font-weight:bold;letter-spacing:1.8px;text-transform:none;vertical-align:top}
table.share_status.dashboard tr:last-child td{padding-bottom:20px}
table.share_status.dashboard tr.last td{padding-bottom:20px}
table.share_status.dashboard tr.header td{padding-bottom:10px;color:#9794a0}
table.share_status.dashboard tr{border:none}
table.share_status.dashboard td{line-height:normal;padding:3px 10px}
table.share_status.dashboard td{line-height:normal;padding:3px 10px;border:none!important}
table.share_status.dashboard td.stopgap{height:10px!important;line-height:10px!important;padding:0!important;background-color:#e4e2e4}
table.share_status.dashboard td.vpn{font-size:1.1rem;font-weight:bold;text-transform:uppercase;letter-spacing:1px}
table.share_status.dashboard td div.section{display:inline-block;vertical-align:top;margin-left:4px;font-size:1.2rem;font-weight:bold;text-transform:uppercase;letter-spacing:1px}
table.share_status.dashboard td div.section span{font-weight:normal;text-transform:none;letter-spacing:0;white-space:normal}
@@ -171,6 +172,7 @@ table.share_status.dashboard td span.load{display:inline-block;width:38px;text-a
table.share_status.dashboard td span.finish{float:right;margin-right:24px}
table.share_status.dashboard i.control{float:right;font-size:1.4rem!important;margin:0 3px 0 0;cursor:pointer;background-color:rgba(0,0,0,0.1);padding:2px}
table.share_status.dashboard .usage-disk.sys{height:auto}
.dashboard-sortable{background-color:#e4e2e4}
tr.alert{color:#f0000c;background-color:#ff9e9e}
tr.warn{color:#e68a00;background-color:#feefb3}
tr.past{color:#d63301;background-color:#ffddd1}
@@ -197,7 +199,7 @@ span.small{font-size:1.1rem}
span.score{font-size:1.1rem;color:#ffffff;position:absolute}
span#dropbox{background:none;line-height:6rem;margin-right:20px}
span.outer{margin-bottom:20px;margin-right:0}
span.outer.solid{background-color:#e4e2e4}
span.outer.solid{background-color:#D7DBDD}
span.hand{cursor:pointer}
span.outer.started>img,span.outer.started>i.img{opacity:1.0}
span.outer.stopped>img,span.outer.stopped>i.img{opacity:0.3}

View File

@@ -154,14 +154,15 @@ table.share_status tbody tr.warn{color:#e68a00}
table.share_status.fixed tr>td+td{min-width:39px;font-size:1.1rem;text-align:center;padding:0}
table.share_status.table{margin-top:36px}
table.share_status.table tr>td{width:50%}
table.share_status.dashboard{margin:0;border:1px solid #2b2b2b}
table.share_status.dashboard tbody{border:1px solid #2b2b2b}
table.share_status.dashboard tr:first-child>td{height:3.6rem;padding-top:12px;font-size:1.6rem;font-weight:bold;letter-spacing:1.8px;text-transform:none;vertical-align:top}
table.share_status.dashboard{margin:0;border:none;background-color:#262626}
table.share_status.dashboard tbody{border:none}
table.share_status.dashboard tr:first-child td{height:3.6rem;padding-top:12px;font-size:1.6rem;font-weight:bold;letter-spacing:1.8px;text-transform:none;vertical-align:top}
table.share_status.dashboard tr:nth-child(even){background-color:transparent}
table.share_status.dashboard tr:last-child>td{padding-bottom:20px}
table.share_status.dashboard tr.last>td{padding-bottom:20px}
table.share_status.dashboard tr:last-child td{padding-bottom:20px}
table.share_status.dashboard tr.last td{padding-bottom:20px}
table.share_status.dashboard tr.header td{padding-bottom:10px}
table.share_status.dashboard td{padding:3px 10px}
table.share_status.dashboard td.stopgap{height:10px!important;line-height:10px!important;padding:0!important;background-color:#1c1b1b}
table.share_status.dashboard td.vpn{font-size:1.1rem;font-weight:bold;text-transform:uppercase;letter-spacing:1px}
table.share_status.dashboard td div.section{display:inline-block;vertical-align:top;margin-left:4px;font-size:1.2rem;font-weight:bold;text-transform:uppercase;letter-spacing:1px}
table.share_status.dashboard td div.section span{font-weight:normal;text-transform:none;letter-spacing:0;white-space:normal}
@@ -170,6 +171,7 @@ table.share_status.dashboard td span.info.title{font-weight:bold}
table.share_status.dashboard td span.load{display:inline-block;width:38px;text-align:right}
table.share_status.dashboard td span.finish{float:right;margin-right:24px}
table.share_status.dashboard i.control{float:right;font-size:1.4rem!important;margin:0 3px 0 0;cursor:pointer;background-color:rgba(255,255,255,0.1);padding:2px}
.dashboard-sortable{background-color:#1c1b1b}
[name=arrayOps]{margin-top:12px}
span.error{color:#f0000c;background-color:#ff9e9e;display:block;width:100%}
span.warn{color:#e68a00;background-color:#feefb3;display:block;width:100%}
@@ -190,7 +192,7 @@ span.strong{font-weight:bold}
span.big{font-size:1.4rem}
span.small{font-size:1.2rem}
span.outer{margin-bottom:20px;margin-right:0}
span.outer.solid{background-color:#191818}
span.outer.solid{background-color:#262626}
span.hand{cursor:pointer}
span.outer.started>img,span.outer.started>i.img{opacity:1.0}
span.outer.stopped>img,span.outer.stopped>i.img{opacity:0.3}

View File

@@ -154,14 +154,15 @@ table.share_status tbody tr.warn{color:#e68a00}
table.share_status.fixed tr>td+td{min-width:39px;font-size:1.1rem;text-align:center;padding:0}
table.share_status.table{margin-top:36px}
table.share_status.table tr>td{width:50%}
table.share_status.dashboard{margin:0;border:1px solid #606e7f}
table.share_status.dashboard tbody{border:1px solid #606e7f}
table.share_status.dashboard tr:first-child>td{height:3.6rem;padding-top:12px;font-size:1.6rem;font-weight:bold;letter-spacing:1.8px;text-transform:none;vertical-align:top}
table.share_status.dashboard tr:last-child>td{padding-bottom:20px}
table.share_status.dashboard tr.last>td{padding-bottom:20px}
table.share_status.dashboard tr{border:none}
table.share_status.dashboard{margin:0;border:none;background-color:#212F3D}
table.share_status.dashboard tbody{border:none}
table.share_status.dashboard tr:first-child td{height:3.6rem;padding-top:12px;font-size:1.6rem;font-weight:bold;letter-spacing:1.8px;text-transform:none;vertical-align:top}
table.share_status.dashboard tr:last-child td{padding-bottom:20px}
table.share_status.dashboard tr.last td{padding-bottom:20px}
table.share_status.dashboard tr.header td{padding-bottom:10px;color:#82857e}
table.share_status.dashboard td{line-height:normal;padding:3px 10px}
table.share_status.dashboard tr{border:none}
table.share_status.dashboard td{line-height:normal;padding:3px 10px;border:none!important}
table.share_status.dashboard td.stopgap{height:10px!important;line-height:10px!important;padding:0!important;background-color:#1b1d1b}
table.share_status.dashboard td.vpn{font-size:1.1rem;font-weight:bold;text-transform:uppercase;letter-spacing:1px}
table.share_status.dashboard td div.section{display:inline-block;vertical-align:top;margin-left:4px;font-size:1.2rem;font-weight:bold;text-transform:uppercase;letter-spacing:1px}
table.share_status.dashboard td div.section span{font-weight:normal;text-transform:none;letter-spacing:0;white-space:normal}
@@ -171,6 +172,7 @@ table.share_status.dashboard td span.load{display:inline-block;width:38px;text-a
table.share_status.dashboard td span.finish{float:right;margin-right:24px}
table.share_status.dashboard i.control{float:right;font-size:1.4rem!important;margin:0 3px 0 0;cursor:pointer;background-color:rgba(255,255,255,0.1);padding:2px}
table.share_status.dashboard .usage-disk.sys{height:auto}
.dashboard-sortable{background-color:#1b1d1b}
tr.alert{color:#f0000c;background-color:#ff9e9e}
tr.warn{color:#e68a00;background-color:#feefb3}
tr.past{color:#d63301;background-color:#ffddd1}
@@ -196,7 +198,7 @@ span.big{font-size:1.4rem}
span.small{font-size:1.1rem}
span#dropbox{background:none;line-height:6rem;margin-right:20px}
span.outer{margin-bottom:20px;margin-right:0}
span.outer.solid{background-color:#1b1d1b}
span.outer.solid{background-color:#212F3D}
span.hand{cursor:pointer}
span.outer.started>img,span.outer.started>i.img{opacity:1.0}
span.outer.stopped>img,span.outer.stopped>i.img{opacity:0.3}

View File

@@ -154,14 +154,15 @@ table.share_status tbody tr.warn{color:#e68a00}
table.share_status.fixed tr>td+td{min-width:39px;font-size:1.1rem;text-align:center;padding:0}
table.share_status.table{margin-top:36px}
table.share_status.table tr>td{width:50%}
table.share_status.dashboard{margin:0;border:1px solid #e3e3e3}
table.share_status.dashboard tbody{border:1px solid #e3e3e3}
table.share_status.dashboard tr:first-child>td{height:3.6rem;padding-top:12px;font-size:1.6rem;font-weight:bold;letter-spacing:1.8px;text-transform:none;vertical-align:top}
table.share_status.dashboard{margin:0;border:none;background-color:#F7F9F9}
table.share_status.dashboard tbody{border:none}
table.share_status.dashboard tr:first-child td{height:3.6rem;padding-top:12px;font-size:1.6rem;font-weight:bold;letter-spacing:1.8px;text-transform:none;vertical-align:top}
table.share_status.dashboard tr:nth-child(even){background-color:transparent}
table.share_status.dashboard tr:last-child>td{padding-bottom:20px}
table.share_status.dashboard tr.last>td{padding-bottom:20px}
table.share_status.dashboard tr:last-child td{padding-bottom:20px}
table.share_status.dashboard tr.last td{padding-bottom:20px}
table.share_status.dashboard tr.header td{padding-bottom:10px}
table.share_status.dashboard td{padding:3px 10px}
table.share_status.dashboard td.stopgap{height:10px!important;line-height:10px!important;padding:0!important;background-color:#f2f2f2}
table.share_status.dashboard td.vpn{font-size:1.1rem;font-weight:bold;text-transform:uppercase;letter-spacing:1px}
table.share_status.dashboard td div.section{display:inline-block;vertical-align:top;margin-left:4px;font-size:1.2rem;font-weight:bold;text-transform:uppercase;letter-spacing:1px}
table.share_status.dashboard td div.section span{font-weight:normal;text-transform:none;letter-spacing:0;white-space:normal}
@@ -170,6 +171,7 @@ table.share_status.dashboard td span.info.title{font-weight:bold}
table.share_status.dashboard td span.load{display:inline-block;width:38px;text-align:right}
table.share_status.dashboard td span.finish{float:right;margin-right:24px}
table.share_status.dashboard i.control{float:right;font-size:1.4rem!important;margin:0 3px 0 0;cursor:pointer;background-color:rgba(0,0,0,0.1);padding:2px}
.dashboard-sortable{background-color:#f2f2f2}
[name=arrayOps]{margin-top:12px}
span.error{color:#f0000c;background-color:#ff9e9e;display:block;width:100%}
span.warn{color:#e68a00;background-color:#feefb3;display:block;width:100%}
@@ -190,7 +192,7 @@ span.strong{font-weight:bold}
span.big{font-size:1.4rem}
span.small{font-size:1.2rem}
span.outer{margin-bottom:20px;margin-right:0}
span.outer.solid{background-color:#f5f5f5}
span.outer.solid{background-color:#F7F9F9}
span.hand{cursor:pointer}
span.outer.started>img,span.outer.started>i.img{opacity:1.0}
span.outer.stopped>img,span.outer.stopped>i.img{opacity:0.3}

View File

@@ -62,8 +62,9 @@
# - added error logging to syslog
# - replace logging for generic add-in module
# Adapted by Bergware for use in Unraid OS - August 2023
# - added interface carrier check when polling for DHCP server
# Adapted by Bergware for use in Unraid OS - October 2023
# - added interface carrier check before assigning IP address (DHCP or static)
# - added "status" command
# Bergware - modified for Unraid OS, October 2023
@@ -369,11 +370,8 @@ ipaddr_up(){
fi
elif [[ $DHCP == no ]]; then
# bring up interface using static IP address
if carrier_up $IFACE; then
log "interface $IFACE is UP, setting static $IP address"
else
log "interface $IFACE is DOWN, setting static $IP address"
fi
if carrier_up $IFACE; then STATE="UP"; else STATE="DOWN"; fi
log "interface $IFACE is $STATE, setting static $IP address"
ipv6_addr 0 1
if [[ $IP != ipv6 ]]; then
[[ $j -eq 0 ]] && ADDR=${IPADDR[$i]} || ADDR=${IPADDR[$i,$j]}
@@ -634,6 +632,13 @@ stop(){
lo_down
}
# function to show network status
status(){
echo "INTERFACE STATE INFORMATION"
echo "========================================================================"
[[ $1 == ip ]] && ip -brief addr || ip -brief link
}
##########################
# STATIC ROUTE FUNCTIONS #
##########################
@@ -721,6 +726,9 @@ restart)
route_down $INTERFACE $ROUTE $METRIC
;;
# default is to bring up the entire network
status)
status $2
;;
*)
start
esac
@@ -739,3 +747,5 @@ exit 0
# rc.inet1 10.0.0.1_default_add add default route to gateway 10.0.0.1 with metric 1
# rc.inet1 eth0_10.0.0.0/24_1_del delete specific route & metric from interface eth0
# rc.inet1 10.0.0.1_default_del delete default route from gateway 10.0.0.1
# rc.inet1 status show link status
# rc.inet1 status ip show ip status