我们从Python开源项目中,提取了以下50个代码示例,用于说明如何使用platform.uname()。
def tell_system_status(self): import psutil import platform import datetime os, name, version, _, _, _ = platform.uname() version = version.split('-')[0] cores = psutil.cpu_count() cpu_percent = psutil.cpu_percent() memory_percent = psutil.virtual_memory()[2] disk_percent = psutil.disk_usage('/')[3] boot_time = datetime.datetime.fromtimestamp(psutil.boot_time()) running_since = boot_time.strftime("%A %d. %B %Y") response = "I am currently running on %s version %s. " % (os, version) response += "This system is named %s and has %s CPU cores. " % (name, cores) response += "Current disk_percent is %s percent. " % disk_percent response += "Current CPU utilization is %s percent. " % cpu_percent response += "Current memory utilization is %s percent. " % memory_percent response += "it's running since %s." % running_since return response
def doFingerprints(self, nomfichier) : try : fichier = open(nomfichier, "w") except IOError : print "No such file " + nomfichier sys.exit(-1) print "++ Begin Generating Fingerprints in " + nomfichier fichier.write("# Generating Fingerprints for :\n# ") for i in platform.uname(): fichier.write(i + " ") fichier.write('\n') temps = strftime('%c', gmtime()) fichier.write("# " + temps + '\n') self.ssyscalls.doFingerprints(fichier) fichier.close() print "++ Keep this fingerprints in safe !" print "++ End Generating Fingerprints"
def __init__(self, base_dir, config, backup_time, seed_uri, argv=None): StateBase.__init__(self, base_dir, config) self.base_dir = base_dir self.state['backup'] = True self.state['completed'] = False self.state['name'] = backup_time self.state['method'] = config.backup.method self.state['path'] = base_dir self.state['cmdline'] = argv self.state['config'] = config.dump() self.state['version'] = config.version self.state['git_commit'] = config.git_commit self.state['host'] = { 'hostname': platform.node(), 'uname': platform.uname(), 'python': { 'build': platform.python_build(), 'version': platform.python_version() } } self.state['seed'] = { 'uri': seed_uri.str(), 'replset': seed_uri.replset } self.init()
def on_cluster(pattern=["tars-"]): """Used to check if we are on a cluster "tars-" is the name of a cluster's hostname. Change or append the argument **pattern** with your cluster's hostname :param str pattern: a list of names (strings) or a string """ if isinstance(pattern, str): pattern = [pattern] for this in pattern: if platform.uname().node.startswith(this): return True else: return False
def lootme_windows(outfiles): try: import winreg # to be filled later except: print('winreg module not present') hostloot = ((platform.uname()[1])+"_loot.txt") outfiles.append(hostloot) with open(hostloot, 'w') as outFile: # gather machine info machine_info(outFile) # gather extended machine info machine_info_extra_win(outFile) # gather user info user_info_win(outFile) # gather network info network_info_win(outFile) # gather log file IPs logfile_ips(outFile) return outfiles ### lootme_windows --end-- ### lootme_linux --start--
def userfiles_list_lin(outfiles): userdirs = os.listdir('/home/') userfiles = (platform.uname()[1]+'_userFiles.txt') outfiles.append(userfiles) with open(userfiles, 'w') as ufs: ufs.write('\nFiles discovered:') for d in userdirs: for path, subdirs, files in os.walk('/home/'+d): for name in files: # search user directories for specified filetypes: # pdf, txt, doc(x) if re.search('[.]*\.pdf', name) or re.search('[.]*\.txt', name) or re.search('[.]*\.doc[.]{1}', name): ufs.write('\n'+os.path.join(path, name)+'\n') return outfiles ### User files list --end-- ### Log file IPs --start--
def get_arch(): machine = platform.uname()[4] if machine in ['aarch64']: return 'aarch64' if machine in ['amd64', 'AMD64', 'x86_64', 'i86pc']: return 'amd64' if machine in ['sun4v', 'sun4u', 'sparc64']: return 'sparcv9' if machine == 'i386' and get_os() == 'darwin': try: # Support for Snow Leopard and earlier version of MacOSX if subprocess.check_output(['sysctl', '-n', 'hw.cpu64bit_capable']).strip() == '1': return 'amd64' except OSError: # sysctl is not available pass abort('unknown or unsupported architecture: os=' + get_os() + ', machine=' + machine)
def get_platform(self): """ Get the OS name, hostname and kernel """ try: osname = " ".join(platform.linux_distribution()) uname = platform.uname() if osname == ' ': osname = uname[0] data = {'osname': osname, 'hostname': uname[1], 'kernel': uname[2]} except Exception as err: print err data = str(err) return data # ----------------end: ???????????----------------- # ----------------start: ???????????????-----------------
def setUp(self): ''' Install the packages ''' # Check for basic utilities smm = SoftwareManager() detected_distro = distro.detect() kernel_ver = platform.uname()[2] deps = ['gcc', 'make'] if 'Ubuntu' in detected_distro.name: deps.extend(['linux-tools-common', 'linux-tools-%s' % kernel_ver]) # FIXME: "redhat" as the distro name for RHEL is deprecated # on Avocado versions >= 50.0. This is a temporary compatibility # enabler for older runners, but should be removed soon elif detected_distro.name in ['rhel', 'SuSE', 'fedora', 'redhat']: deps.extend(['perf']) else: self.cancel("Install the package for perf supported by %s" % detected_distro.name) for package in deps: if not smm.check_installed(package) and not smm.install(package): self.cancel('%s is needed for the test to be run' % package)
def setUp(self): """ Verify it is baremetal Install the cpupower tool """ if not os.path.exists('/proc/device-tree/ibm,opal/power-mgt'): self.cancel("Supported only on Power Non Virutalized environment") smm = SoftwareManager() detected_distro = distro.detect() if 'Ubuntu' in detected_distro.name: deps = ['linux-tools-common', 'linux-tools-%s' % platform.uname()[2]] else: deps = ['kernel-tools'] for package in deps: if not smm.check_installed(package) and not smm.install(package): self.cancel('%s is needed for the test to be run' % package)
def test_uname_win32_ARCHITEW6432(self): # Issue 7860: make sure we get architecture from the correct variable # on 64 bit Windows: if PROCESSOR_ARCHITEW6432 exists we should be # using it, per # http://blogs.msdn.com/david.wang/archive/2006/03/26/HOWTO-Detect-Process-Bitness.aspx try: with support.EnvironmentVarGuard() as environ: if 'PROCESSOR_ARCHITEW6432' in environ: del environ['PROCESSOR_ARCHITEW6432'] environ['PROCESSOR_ARCHITECTURE'] = 'foo' platform._uname_cache = None system, node, release, version, machine, processor = platform.uname() self.assertEqual(machine, 'foo') environ['PROCESSOR_ARCHITEW6432'] = 'bar' platform._uname_cache = None system, node, release, version, machine, processor = platform.uname() self.assertEqual(machine, 'bar') finally: platform._uname_cache = None
def test_special_pid(self): p = psutil.Process(4) self.assertEqual(p.name(), 'System') # use __str__ to access all common Process properties to check # that nothing strange happens str(p) p.username() self.assertTrue(p.create_time() >= 0.0) try: rss, vms = p.memory_info()[:2] except psutil.AccessDenied: # expected on Windows Vista and Windows 7 if not platform.uname()[1] in ('vista', 'win-7', 'win7'): raise else: self.assertTrue(rss > 0)
def test_uname_win32_ARCHITEW6432(self): # Issue 7860: make sure we get architecture from the correct variable # on 64 bit Windows: if PROCESSOR_ARCHITEW6432 exists we should be # using it, per # http://blogs.msdn.com/david.wang/archive/2006/03/26/HOWTO-Detect-Process-Bitness.aspx try: with test_support.EnvironmentVarGuard() as environ: if 'PROCESSOR_ARCHITEW6432' in environ: del environ['PROCESSOR_ARCHITEW6432'] environ['PROCESSOR_ARCHITECTURE'] = 'foo' platform._uname_cache = None system, node, release, version, machine, processor = platform.uname() self.assertEqual(machine, 'foo') environ['PROCESSOR_ARCHITEW6432'] = 'bar' platform._uname_cache = None system, node, release, version, machine, processor = platform.uname() self.assertEqual(machine, 'bar') finally: platform._uname_cache = None
def test_read_from_file_url(self): # FILE if sys.version_info[:2] < (2, 6): raise nose.SkipTest("file:// not supported with Python < 2.6") localtable = os.path.join(self.dirpath, 'test1' + self.ext) local_table = read_excel(localtable) try: url_table = read_excel('file://localhost/' + localtable) except URLError: # fails on some systems import platform raise nose.SkipTest("failing on %s" % ' '.join(platform.uname()).strip()) tm.assert_frame_equal(url_table, local_table)
def test_file(self): # FILE if sys.version_info[:2] < (2, 6): raise nose.SkipTest("file:// not supported with Python < 2.6") dirpath = tm.get_data_path() localtable = os.path.join(dirpath, 'salary.table') local_table = self.read_table(localtable) try: url_table = self.read_table('file://localhost/' + localtable) except URLError: # fails on some systems raise nose.SkipTest("failing on %s" % ' '.join(platform.uname()).strip()) tm.assert_frame_equal(url_table, local_table)
def _init(self): try: log.info('dataplicity %s', __version__) log.info('uname=%s', ' '.join(platform.uname())) self.remote = jsonrpc.JSONRPC(self.rpc_url) self.serial = self._read(constants.SERIAL_LOCATION) self.auth_token = self._read(constants.AUTH_LOCATION) self.poll_rate_seconds = 60 self.disk_poll_rate_seconds = 60 * 60 self.next_disk_poll_time = time.time() log.info('m2m=%s', self.m2m_url) log.info('api=%s', self.rpc_url) log.info('serial=%s', self.serial) log.info('poll=%s', self.poll_rate_seconds) self.m2m = M2MManager.init(self, m2m_url=self.m2m_url) self.port_forward = PortForwardManager.init(self) except: log.exception('failed to initialize client') raise
def get_sys_info(): info = """ Machine: {}\nVersion: {} Platform: {}\nNode: {}\nUname: {}\nSystem: {} Processor: {}\n\nHost Name: {}\nFQDN: {}\n """.format( platform.machine(), platform.version(), platform.platform(), platform.node(), platform.uname(), platform.system(), platform.processor(), socket.gethostname(), socket.getfqdn() ) return info
def uptime_string(startup_time_in_seconds, last_error_time): # Machine info uname = platform.uname() uptime_seconds = uptime.uptime() # Delta uptime in human readable format uptime_message = str(timedelta(seconds=uptime_seconds)) # Time now now = time.time() delta = now - startup_time_in_seconds bot_uptime = str(timedelta(seconds=int(delta))) # Make messsge message = "" message += "\U0001F4BB Running on " + uname[0] + " " + uname[2] + " " + uname[4] + "\n" message += "\U0000231B Machine Uptime: " + uptime_message + "\n" message += "\U0001F916 Bot uptime: " + bot_uptime + "\n" return message
def _get_os_type(): os_type = OSType.unknown[0] # Figure out the general OS type uname = platform.system().strip().strip('"').strip("'").strip().lower() if 'beos' in uname or 'haiku' in uname: os_type = OSType.BeOS[0] elif 'bsd' in uname or 'gnu/kfreebsd' in uname: os_type = OSType.BSD[0] elif 'cygwin' in uname: os_type = OSType.Cygwin[0] elif 'darwin' in uname: os_type = OSType.MacOS[0] elif 'linux' in uname: os_type = OSType.Linux[0] elif 'solaris' in uname or 'sunos' in uname: os_type = OSType.Solaris[0] elif 'windows' in uname: os_type = OSType.Windows[0] return os_type
def __str__(self): """Print out the environment""" s = [] s.append("BUILD_CPU:") s.append(self.env['build_cpu']) s.append("HOST_CPU:") s.append(self.env['host_cpu']) s.append("\nBUILD_OS: ") s.append(self.env['build_os']) s.append("\nHOST_OS: ") s.append(self.env['host_os']) s.append("\nUNAME: ") s.append(str(self.env['uname'])) s.append("\nHOSTNAME: ") s.append(self.env['hostname']) s.append("\nSYSTEM: ") s.append(self.env['system']) s.append("\nDICTIONARY:\n") for k,v in iter(self.env.items()): s.append("\t") s.append(k) s.append("->") s.append(str(v)) s.append("\n") return ''.join(s)
def verbose_startup(self): if self._emitted_startup_msg: return self._emitted_startup_msg = True if verbose(1): msgb("INVOKED", " ".join(sys.argv)) msgb("START TIME", self.env['start_time_str']) msgb("CURRENT DIRECTORY", os.getcwd()) msgb('UNAME', str(self.env['uname']).replace(':','_')) msgb('SYSTEM', self.env['system']) msgb('HOSTNAME', self.env['hostname']) msgb("BUILD_OS", self.env['build_os']) msgb("BUILD_CPU", self.env['build_cpu']) msgb("HOST_OS", self.env['host_os']) msgb("HOST_CPU", self.env['host_cpu'])
def show_platform(): ''' Show information on platform''' swrite('\n=== SYSTEM ===\n\n') try: linux_distribution = platform.linux_distribution() except: linux_distribution = "N/A" swrite(""" dist: %s linux_distribution: %s system: %s machine: %s platform: %s uname: %s version: %s mac_ver: %s memory: %s number of CPU: %s """ % ( str(platform.dist()), linux_distribution, platform.system(), platform.machine(), platform.platform(), platform.uname(), platform.version(), platform.mac_ver(), psutil.virtual_memory(), str(psutil.cpu_count()) ))
def uname(self): p = subprocess.Popen(shlex.split('uname -i'), stdout=subprocess.PIPE, close_fds=True) hwplatform = p.stdout.read().strip() p.wait() uname = platform.uname() return { 'kernel_name': uname[0], 'node': uname[1], 'kernel_release': uname[2], 'kernel_version': uname[3], 'machine': uname[4], 'processor': uname[5], 'platform': hwplatform, }
def collect_osinfo(self): uname = platform.uname() osinfo = {} osinfo['platform'] = platform.platform() osinfo['system'] = uname.system osinfo['node'] = uname.node osinfo['release'] = uname.release osinfo['version'] = uname.version osinfo['machine'] = uname.machine osinfo['processor'] = uname.processor return osinfo # run function in the thread
def __init__(self, session_user_id): """session_user_id should either be a string or another Session. Note that if another session is given, only parameters like those required to init a connection will be copied. """ # These values will NOT be saved if isinstance(session_user_id, JsonSession): self.session_user_id = None # For connection purposes session = session_user_id self.device_model = session.device_model self.system_version = session.system_version self.app_version = session.app_version self.lang_code = session.lang_code self.system_lang_code = session.system_lang_code self.lang_pack = session.lang_pack else: # str / None self.session_user_id = session_user_id system = platform.uname() self.device_model = system.system if system.system else 'Unknown' self.system_version = system.release if system.release else '1.0' self.app_version = '1.0' # '0' will provoke error self.lang_code = 'en' self.system_lang_code = self.lang_code self.lang_pack = '' # Cross-thread safety self._lock = Lock() # These values will be saved self.server_address = '91.108.56.165' self.port = 443 self.auth_key = None self.id = utils.generate_random_long(signed=False) self._sequence = 0 self.salt = 0 # Unsigned long self.time_offset = 0 self._last_msg_id = 0 # Long
def __init__(self, cb): super(RabbitMQEventSource, self).__init__() self.daemon = True self._closing = False self._connection = None self._channel = None self._closing = False self._consumer_tag = None self._auto_ack = True self._consuming = False self._cb = cb creds = cb.credentials if not creds.rabbitmq_pass: error_text = "RabbitMQEventSource requires credentials for the event bus. Make sure that\n" + \ "rabbitmq_pass, rabbitmq_user, rabbitmq_host, and rabbitmq_port are defined\n" + \ "in the credential file" if cb.credential_profile_name: error_text += " for profile '{0}'.".format(cb.credential_profile_name) raise CredentialError(error_text) self._url = "amqp://{0}:{1}@{2}:{3}".format(creds.rabbitmq_user, creds.rabbitmq_pass, creds.rabbitmq_host, creds.rabbitmq_port) self.QUEUE = "cbapi-event-handler-{0}-{1}".format(platform.uname()[1], os.getpid()) self.EXCHANGE = "api.events" self.ROUTING_KEYS = registry.event_types self.EXCHANGE_TYPE = "topic"
def main(): global canvas root = Tk() root.title('Tetrahedron') root.geometry('+0+0') init() canvas = Canvas(root, width=400, height=400, background=bgColor) canvas.pack(fill=BOTH,expand=YES) canvas.bind("<Button-1>", cbClicked) canvas.bind("<B1-Motion>", cbMottion) canvas.bind("<Configure>", resize) from platform import uname os = uname()[0] if ( os == "Linux" ): canvas.bind('<Button-4>', wheelUp) # X11 canvas.bind('<Button-5>', wheelDown) elif ( os == "Darwin" ): canvas.bind('<MouseWheel>', wheel) # MacOS else: canvas.bind_all('<MouseWheel>', wheel) # windows drawTet(tet,tetColor) mainloop()
def sys_info(): """Get platform info.""" import platform sys_info_tup = platform.uname() return (sys_info_tup[0], sys_info_tup[1])
def get_system_info(): try: if platform.system() == "Windows": username = os.environ["USERNAME"] sysname, nodename, release, version, machine, _ = platform.uname() else: username = getpass.getuser() sysname, nodename, release, version, machine = os.uname() except Exception as e: logger.error(e) username = 'unknown' sysname, nodename, release, version, machine = sys.platform,'unknown','unknown','unknown','unknown' return "User: {}, Platform: {}, Machine: {}, Release: {}, Version: {}".format(username,sysname,nodename,release,version)
def __init__(self): self.default_sys_path = sys.path self._input = io.open(sys.stdin.fileno(), encoding='utf-8') if (os.path.sep == '/') and (platform.uname()[2].find('Microsoft') > -1): # WSL; does not support UNC paths self.drive_mount = '/mnt/' elif sys.platform == 'cygwin': # cygwin self.drive_mount = '/cygdrive/' else: # Do no normalization, e.g. Windows build of Python. # Could add additional test: ((os.path.sep == '/') and os.path.isdir('/mnt/c')) # However, this may have more false positives trying to identify Windows/*nix hybrids self.drive_mount = ''
def test_oncluster(): assert on_cluster() is False import platform name = platform.uname().node assert on_cluster([name]) is True assert on_cluster(name) is True
def pacemaker(self, timeout=60): # This is a stand-alone heartbeat generator. To pulse from your own control loop, # call your AbstractLog subclass instance event handler (e.g. AbstractLog['event']() def __target(timeout=60): if platform.uname()[0].lower() == "windows": import win32con import win32event self.running = True kill = win32event.CreateEvent(None, 1, 0, None) pulse = win32event.CreateWaitableTimer(None, 0, None) win32event.SetWaitableTimer(pulse, 0, timeout*1000, None, None, False) while(self.running): try: result = win32event.WaitForMultipleObjects([kill, pulse], False, 1000) # if kill signal received, break loop if(result == win32con.WAIT_OBJECT_0): break # elif timeout has passed, generate a pulse elif(result == win32con.WAIT_OBJECT_0 + 1): self['event']() except: self.notifyOfError("Pacemaker shutdown. Heartbeats will not be generated.") win32event.SetEvent(kill) elif self.options['Verbose']: print "Pacemaker only supported in Windows at this time. " try: self.thread = threading.Thread(target=__target, args=(timeout,) ) self.thread.start() except: self.notifyOfError("Pacemaker thread exception. Heartbeats will not be generated.")
def lootme_linux(outfiles): hostloot = (platform.uname()[1]+'_loot.txt') outfiles.append(hostloot) with open(hostloot, 'w') as outFile: # gather machine info machine_info(outFile) # gather user info user_info_lin(outFile) # gather network info network_info_lin(outFile) # gather disk info disk_info_lin(outFile) # gather process info process_info_lin(outFile) # search user files for extractable data userdata_extract_lin(outFile) # search for list of user files outfiles = userfiles_list_lin(outfiles) # search entire os for .log files, and grab all unique IP addresses logfile_ips(outFile) return outfiles ### lootme_linux --end-- ### Machine info --start--
def machine_info(outFile): # Dump machine information outFile.write('Machine info:\n') outFile.write(platform.uname()[1]+'\n'+platform.system()+'\n'+platform.release()+'\n'+platform.version()+'\n') # Dump environment variables outFile.write("Environment vars:\n"+str(os.environ)+'\n') ### Machine info --end-- ### Machine info extra Windows --start--
def writeRiskLog(self, content): """????????""" # ??????? if platform.uname() == 'Windows': import winsound winsound.PlaySound("SystemHand", winsound.SND_ASYNC) # ?????? log = VtLogData() log.logContent = content log.gatewayName = self.name event = Event(type_=EVENT_LOG) event.dict_['data'] = log self.eventEngine.put(event) #----------------------------------------------------------------------
def main(): """?????""" # ??sys???????????????utf8 reload(sys) sys.setdefaultencoding('utf8') # ??Windows??????? if 'Windows' in platform.uname() : ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID('InplusTrader') # ???Qt???? app = QtGui.QApplication(sys.argv) app.setWindowIcon(QtGui.QIcon(ICON_FILENAME)) app.setFont(BASIC_FONT) # ??Qt??? try: f = file(SETTING_FILENAME) setting = json.load(f) if setting['darkStyle']: import qdarkstyle app.setStyleSheet(qdarkstyle.load_stylesheet(pyside=False)) except: pass # ???????????? mainEngine = MainEngine() mainWindow = MainWindow(mainEngine, mainEngine.eventEngine) mainWindow.showMaximized() # ???????Qt???? sys.exit(app.exec_())
def slave_Info(netsettings): sysname, nodename, release, version, machine, processor = platform.uname() slave = netrender.model.RenderSlave() slave.name = nodename slave.stats = sysname + " " + release + " " + machine + " " + processor if netsettings.slave_tags: slave.tags = set(netsettings.slave_tags.split(";")) if netsettings.slave_bake: slave.tags.add(netrender.model.TAG_BAKING) if netsettings.slave_render: slave.tags.add(netrender.model.TAG_RENDER) return slave
def init(host, port): import platform device = Device(host, port) device._vendor_name = platform.uname()[0] device._device_name = "IP-Stack" device._chipset_name = "UDP" return device