This commit is contained in:
jysperm
2014-11-17 23:17:43 +08:00
parent 97989a32e1
commit f9cb920d61
10 changed files with 29 additions and 23 deletions

View File

@@ -61,6 +61,7 @@
vi /etc/rc.local
ln -s /dev/xvda /dev/root
iptables-restore < /etc/iptables.rules
su rpadmin
@@ -100,7 +101,6 @@
reboot
ln -s /dev/xvda /dev/root
quotacheck -am
quotaon -au

View File

@@ -76,7 +76,7 @@ block main
pre.output-coupon-code
.account-details-modal.modal.fade
.modal-dialog
.modal-dialog(style='width: 800px;')
.modal-content
.modal-header
button.close(type='button', data-dismiss='modal', aria-hidden='true') &times;

View File

@@ -34,9 +34,13 @@ block main
thead
tr
td= t('common.time')
td= t('common.details')
td= t('common.amount')
tbody
for item in billing_log
tr
td= moment(item.created_at).format('YYYY-MM-DD HH:mm:ss')
td
each info, plan_name in item.payload
p #{plan_name}: #{info.billing_unit_count} unit before #{info.last_billing_at}
td #{item.amount.toFixed(2)} CNY

View File

@@ -141,18 +141,17 @@ exports.getStorageQuota = (callback) ->
cache.try 'linux.getStorageQuota', (SETEX) ->
child_process.exec "sudo repquota -a", (err, stdout) ->
logger.error err if err
lines = _.filter stdout.split('\n')[5...-1], (i) -> i
lines = _.filter stdout.split('\n')[5 ... -1], (i) -> i
lines = _.map lines, (line) ->
fields = _.filter line.split(' '), (i) -> i and i != ' '
[username, __, size_used, size_soft, size_hard, inode_used, inode_soft, inode_hard, inode_grace] = fields
[username, __, size_used, size_soft, size_hard, inode_used, inode_soft, inode_hard, inode_grace] = line.split /\s+/
if /days/.test inode_used
[size_grace, inode_used, inode_soft, inode_hard, inode_grace] = [inode_used, inode_soft, inode_hard, inode_grace]
return {
username: username
size_used: parseFloat (parseInt(size_used) / 1024 / 1024).toFixed(1)
size_used: parseFloat (parseInt(size_used) / 1024).toFixed(1)
inode_used: parseInt inode_used
}
@@ -237,12 +236,15 @@ exports.getResourceUsageByAccounts = (callback) ->
logger.error err if err
resources_usage_by_accounts = []
for username, usage of monitor.resources_usage
for username in _.union _.keys(monitor.resources_usage), _.keys(result.storage_quota)
usage = monitor.resources_usage[username]
storage = result.storage_quota[username]
resources_usage_by_accounts.push
username: username
cpu: usage.cpu ? 0
memory: usage.memory ? 0
storage: result.storage_quota[username]?.size_used ? 0
cpu: usage?.cpu ? 0
memory: usage?.memory ? 0
storage: storage?.size_used ? 0
process: _.filter(result.process_list, (i) -> i.user == username).length
SETEX resources_usage_by_accounts, 20

View File

@@ -2,8 +2,8 @@
"": "Linux",
"server_monitor": "Server Status",
"widget": {
"hour_cpu": "CPU usage in last hour",
"hour_memory": "Memory usage in last hour",
"hour_cpu": "CPU in last hour",
"hour_memory": "Memory in last hour",
"storage": "Storage used",
"month_transfer": "traffic of this month"
},

View File

@@ -22,7 +22,7 @@ exports.monitoring = (callback) ->
REDIS_KEY = "#{config.redis.prefix}:linux.recent_resources_usage"
ITEM_IN_RESOURCES_LIST = 3600 * 1000 / config.plugins.linux.monitor_cycle
linux.getMemoryInfo (err, memory_info) ->
linux.getMemoryInfo (memory_info) ->
linux.getProcessList (plist) ->
plist = _.reject plist, (item) ->
return item.rss == 0
@@ -62,7 +62,7 @@ exports.monitoring = (callback) ->
usage.memory = parseFloat (usage.memory / recent_resources_usage.length / base).toFixed(1)
async.each _.keys(resources_usage), (username, callback) ->
Account.search username, (err, account) ->
Account.search username, (account) ->
unless account
return callback()

View File

@@ -84,7 +84,7 @@ block content
td= item.process
td #{item.cpu}s
td #{item.memory.toFixed(1)}M
td #{(item.storage / 1024).toFixed(1)}M
td #{(item.storage).toFixed(1)}M
.row
.panel.panel-default.process-list

View File

@@ -1,7 +1,7 @@
{
"": "SSH",
"process": "Process",
"memory": "Memory",
"memory": "Mem",
"cpu": "CPU",
"kill": "Kill",
"view": {

View File

@@ -3,11 +3,11 @@ $ ->
if window.confirm 'Are you sure?'
request '/plugin/ssh/kill',
pid: $(@).parents('tr').data 'id'
, ->
location.reload()
, =>
$(@).parents('tr').remove()
$('.widget-ssh .action-update-password').click ->
request '/plugin/ssh/update_password',
password: $('.widget-ssh .input-password').val()
, ->
location.reload()
alert 'Success'

View File

@@ -14,10 +14,10 @@
table(style= 'table-layout: fixed;').table.table-hover
thead
tr
td(style= 'width: 250px;')= t('process')
td= t('memory')
td= t('cpu')
td= t('common.actions')
th(style= 'width: 240px;')= t('process')
th= t('memory')
th= t('cpu')
th= t('common.actions')
tbody
for process in process_list
tr(data-id= '#{process.pid}')