Example #1
0
def main():
	if http_request() == 1:
		send_to_syslog("The server responds to HTTP requests on localhost in more than 100ms")
		send_email("The server responds to HTTP requests on localhost in more than 100ms")
	if tty_session() == 1:
		send_to_syslog("There are user(s) with tty session(s) logged into the server")	
		send_email("There are user(s) with tty session(s) logged into the server")
	if disk_usage() == 1:
		send_to_syslog("Disk usage on the root volume is more than 90%")
		send_email("Disk usage on the root volume is more than 90%")
Example #2
0
 def size(self):
     if self._size:
         return self._size
     paths = [self.documentRoot,] + [a[1] for a in self.aliases]
     paths = list(set([os.path.abspath(path.strip('"')) for path in paths]))
     paths.sort()
     for x_path in paths[:]:
         for y_path in paths[:]:
             if x_path is y_path:
                 continue
             if os.path.commonprefix([x_path, y_path]) == x_path:
                 paths.remove(y_path)
     size = 0
     for path in paths:
         size += disk_usage(path)
     self._size = size
Example #3
0
 def disk_usage(self):
     total, used, free = disk_usage.disk_usage(self.store_dir)
     return total, used, free
Example #4
0
#!/usr/bin/env Python
import time
import cpu_occupy
import memory_occupy
import cpu_load
import network_rate
import disk_usage

if __name__ == '__main__':
    while True:
        localtime = time.asctime(time.localtime(time.time()))
        print(localtime + "-----------------------------")
        print "[cpu_occupy] " + ": %.2f" % cpu_occupy.get_cpu_occupy() + r' %'
        print "[memory_occupy]" + ": %.2f" % memory_occupy.get_mem_occupy(
        ) + r' %'
        load = cpu_load.get_cpu_load()
        print "[cpu_load] 1min 5min 15mim: %s %s %s" % (load.one, load.five,
                                                        load.fifteen)
        print "[network_speed]"
        for item in network_rate.get_net_rate():
            print "%s recv: %.2f KB/s ; trans: %.2f KB/s" % (
                item.interface, item.recv_rate / 1000,
                item.transmit_rate / 1000)
        print "[disk_usage]"
        for dev in disk_usage.disk_partitions():
            usage = disk_usage.disk_usage(dev.mountpoint)
            print "%s" % dev.device + ":  %.1f " % usage.percent + r' %'
        time.sleep(30)
def run_pano(self,session):
    primary_folder = session['pano_config']['pano_main_folder']
    fallback_folder = session['pano_config']['pano_fallback_folder']
    main_folder = None
    if os.path.exists(primary_folder):
        main_folder = primary_folder
        self.update_state(state='PROGRESS',
                      meta={'status': 'Primary folder found.'})
    elif os.path.exists(fallback_folder):
        main_folder = fallback_folder
        self.update_state(state='WARNING',
                      meta={'status': 'Primary folder not found, using fallback'})
    else:
        self.update_state(state='FAILURE',
                      meta={'status': 'No folders found. Aborting...'})
        raise Ignore

    self.update_state(state='PROGRESS',
                      meta={'status': 'Saving panorma images to {} '.format(main_folder)})
    time.sleep(5)

    # test if there's enough disk space
    current_usage = disk_usage.disk_usage(main_folder)
    if current_usage.free < 1e6*int(512):
        self.update_state(state='FAILURE',
                      meta={'status':"There's only {} bytes left. Stopping".format(current_usage.free)})
        raise Ignore


    timestream_format = "%Y/%Y_%m/%Y_%m_%d/%Y_%m_%d_%H/{}_%Y_%m_%d_%H_%M"
    dt = datetime.now()
    temp = dt.stftime(timestream_format).format(session["pano_config"]['camera_name'])
    main_folder = os.path.join(main_folder, temp)

    if not os.path.exists(main_folder):
        os.makedirs(main_folder)

    self.update_state(state='PROGRESS',
                      meta={'status': 'Created folder: {} '.format(main_folder)})

    self.update_state(state='PROGRESS',
                      meta={'status': 'Started...'})

    pano_image_num = 0
    delay_sec = 3

    # make sure zoom is correct before taking panorama
    if session.get("zoom_val",None):
        self.update_state(state='PROGRESS',
                      meta={'status': 'Setting zoom to {}'.format(session['zoom_val'])})
        set_zoom(self, session, session["zoom_val"])
        time.sleep(1)


    def cols_right():
        for i in range(session['pano_cols']):
            for j in range(session['pano_rows']):
                if j == 0:
                    move_and_snap(self, session, main_folder, dt, i, j, delay_sec)
                else:
                    move_and_snap(self, session, main_folder, dt, i, j)


    def cols_left():
        for i in range(session['pano_cols']-1, -1, -1):
            for j in range(session['pano_rows']):
                if j == 0:
                    move_and_snap(self, session, main_folder, dt, i, j, delay_sec)
                else:
                    move_and_snap(self, session, main_folder, dt, i, j)


    def rows_down():
        for j in range(session['pano_rows']):
            for i in range(session['pano_cols']):
                if i == 0:
                    move_and_snap(self, session, main_folder, dt, i, j, delay_sec)
                else:
                    move_and_snap(self, session, main_folder, dt, i, j)

    def rows_up():
        for j in range(session['pano_rows']-1, -1, -1):
            for i in session['pano_cols']:
                if i == 0:
                    move_and_snap(self, session, main_folder, dt, i, j, delay_sec)
                else:
                    move_and_snap(self, session, main_folder, dt, i, j)

    funcs = {
        0: cols_right,
        1: cols_left,
        2: rows_down,
        3: rows_up
    }

    # run a function from the signatures.
    funcs[session.get("scan_order",0)]()