Hostwinds 튜토리얼
에 대한 검색 결과:
목차
태그 : Cloud Servers, Dedicated Server
PowerShell은 컴퓨터 시스템의 관리를 자동화하는 데 일반적으로 사용되는 크로스 플랫폼 솔루션이지만 일반 코딩에도 사용할 수 있습니다.PowerShell은 명령 줄 쉘, 스크립팅 언어 및 구성 관리 프레임 워크로 구성됩니다.PowerShell은 Windows, Linux 및 MacOS 운영 체제에서 실행됩니다.운영 체제의 근본적인 차이로 인해 일부 PowerShell 명령 (CMDLET)은 의미가 없습니다.예를 들어, PowerShell get-acl Linux 파일 시스템이 NTFS Access Control Lists (ACLS)를 사용하지 않는다는 점에서 Linux 시스템에는 CMDLET가 적용되지 않습니다.사용 가능한 Linux PowerShell CMDLETS 목록을 보려면 실행하십시오. 사령관.
Linux에서는 한 명령의 출력이 다른 명령으로 배관 될 수 있습니다.예를 들어:
ls | sort -r | more
이 반대 방향은 현재 디렉토리의 내용을 정렬하고 목록 (필요한 경우)을 페이지에 넣습니다.즉, 데이터 스트림 출력입니다 ls 명령은 종류 데이터 스트림 출력이 더 명령.이것의 PowerShell 아날로그는 다음과 같습니다.
Get-ChildItem | Sort-Object -Descending | Out-Host -Paging
이 질문을 제기하는 것은 왜 기본 버전에서 PowerShell을 사용하고 싶습니까?한 가지 주요 이유는 간단한 데이터 스트림이 아닌 객체가 PowerShell CMDLET 사이에 파이프가 있기 때문입니다.예를 들어, 다른 출력 스트림에서 정보를 추출하기 위해 텍스트를 구문 분석 할 필요가 없습니다.그리고 PowerShell 객체는 일반적으로 그들과 관련된 수많은 속성을 가지고 있기 때문에 상대적으로 쉽게 할 수 있습니다.예를 들어, CRON 서비스의 PID를 찾고 싶다고 가정 해보십시오.첫 번째 시도는 다음과 같습니다.
ps -aux | grep cron
이로 인해 다음과 유사한 출력이 발생합니다.
root 1041 0.0 0.1 126384 1584 ? Ss 22:25 0:00 /usr/sbin/crond -n
root 3519 0.0 0.0 123360 728 ? Ss 23:01 0:00 /usr/sbin/anacron -s
root 4089 0.0 0.0 112808 976 pts/1 R+ 23:09 0:00 grep --color=auto cron
테이블 헤더를 보지 않고는 말하기는 어렵지만 Cron Pid는 1041 인 것으로 보입니다.이 경우라고 가정하면 첫 번째 줄의 두 번째 열에 액세스해야합니다.첫 번째 단계는 과도한 공백을 줄이는 것입니다.
ps -aux | grep cron | tr -s ' '
이것은 수율 :
root 1041 0.0 0.1 126384 1584 ? Ss 22:25 0:00 /usr/sbin/crond -n
root 3519 0.0 0.0 123360 728 ? Ss 23:01 0:00 /usr/sbin/anacron -s
root 4167 0.0 0.0 112808 972 pts/1 R+ 23:11 0:00 grep --color=auto cron
이제 두 번째 열을 분리 할 수 있습니다 자르다:
ps -aux | grep cron | tr -s ' ' | cut -d ' ' -f 2
생산 :
1041
3519
4274
마지막으로, 우리는 다음과 같이 첫 번째 줄을 잡을 수 있으며, 원하는 결과, 즉 1041을 얻을 수 있습니다.
ps -aux | grep cron | tr -s ' ' | cut -d ' ' -f 2 | head -1
PowerShell cmdlets가 데이터 스트림 대신 개체를 출력한다는 사실을 사용하여 위의 PowerShell 버전은 간단합니다.
(Get-Process -Name crond).Id
이 경우 get -process -name crond CRON 프로세스를 나타내는 객체를 반환합니다.이 객체에는 일련의 유용한 속성이 있으며 그 중 하나는 프로세스 ID (또는 PID)입니다.PowerShell 객체의 속성에 액세스하려면 괄호 안으로 래핑 한 다음 표시된대로 표준 "DOT"표기법을 사용할 수 있습니다.
좋아하는 Linux 풍미에 PowerShell을 설치하려면 Microsoft를 참조하십시오. Linux에 PowerShell 설치.Linux 배포판이 나열되지 않은 경우 고려하십시오 Linux에 PowerShell을 설치하는 대체 방법.
예를 들어, 다음 네 가지 명령은 우분투에 최신 버전의 PowerShell을 설치합니다.
# Optionally update all software packages:
sudo apt update && sudo apt upgrade -y
# Download and Add Microsoft repository:
wget -q "https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb" -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
# Install PowerShell:
sudo apt update
sudo apt install -y powershell
# Start PowerShell:
pwsh
볼 수 있듯이 PowerShell을 설치하는 것은 간단합니다.
하나의 주요 기술은 PowerShell 객체가 실제로 가지고있는 속성을 결정하는 것입니다.이것은 쉽게 달성 할 수 있습니다 그려진 사람 cmdlet.예를 들어, PowerShell 프로세스 객체의 속성을 결정하려면 다음을 사용할 수 있습니다.
Get-Process | Get-Member -Force
이것은 a가 있음을 보여줍니다 길 프로세스 개체에 대한 속성.따라서 다음과 같이 CPU 사용법과 관련하여 상위 10 개의 프로세스를 나열하는 데 사용할 수 있습니다.
Get-Process | Sort-Object -Property CPU | Select-Object -Property Name, Path, CPU -Last 10
이것은 다음과 유사한 출력을 생성합니다.
Name Path CPU
---- ---- ---
xfwm4 /usr/bin/xfwm4 1.95
systemd /usr/lib/systemd/systemd 3.63
rngd /usr/sbin/rngd 7.39
xfce4-terminal /usr/bin/xfce4-terminal 9.35
xrdp /usr/sbin/xrdp 22.05
ksoftirqd/0 26.21
pwsh /opt/microsoft/powershell/7/pwsh 27.37
rcu_sched 45.44
Xvnc /usr/bin/Xvnc 59.27
NetworkManager /usr/sbin/NetworkManager 955.19
유용하지만 전체 시스템 사용 메트릭을 계산할 수 있습니다.첫 번째 컷은 단순히 비 페이지 메모리 (NPM), 페이지 메모리 (PM), 작업 세트 (WS) 및 CPU 사용 값을 합산하는 것입니다.즉, 전체 사용 지표를 다음과 같이 정의합니다.
glightusage = npm + pm + ws + cpu.
PowerShell에서는 다음과 같이 달성 할 수 있습니다.
Get-Process | Select-Object -Property @{Label = 'OverallUsage'; Expression = {$_.NPM + $_.PM + $_.WS + $_.CPU}}
그만큼 @{} 해시 테이블 (즉, 키/값 쌍)은 우리가 전체적으로 그의 정의는 위에 표시된 표현입니다.이 표현에서 $_ 파이프 라인 객체를 나타냅니다.이 경우 개별 프로세스 개체 프로세스를 얻으십시오 반환 (실행중인 Linux 프로세스 당 하나).그런 다음 네 가지 속성을 요약합니다.이로 인해 다음 (처음 몇 줄)이 발생합니다.
OverallUsage
------------
520192
815104.03
794624
1093632
4902912.01
3330048.37
이제이 두 개념을 다음과 같이 결합 할 수 있습니다.
Get-Process | Select-Object -Property Name, Path, @{Label = 'OverallUsage'; Expression = {$_.NPM + $_.PM + $_.WS + $_.CPU}} | Sort-Object -Property OverallUsage -Bottom 10
이것은 다음과 유사한 상위 10 가지 전체 사용 테이블을 생성합니다.
Name Path OverallUsage
---- ---- ------------
Thunar /usr/bin/thunar 14073856.2
xfce4-power-manager /usr/bin/xfce4-power-manager 15970304.3
xfce4-panel /usr/bin/xfce4-panel 16195584.9
xfdesktop /usr/bin/xfdesktop 17588224.59
tuned /usr/bin/python2.7 18898945.66
yum-cron /usr/bin/python2.7 22335488.2
xfce4-terminal /usr/bin/xfce4-terminal 23642123.4
xrdp /usr/sbin/xrdp 26570776.34
Xvnc /usr/bin/Xvnc 82710598.14
pwsh /opt/microsoft/powershell/7/pwsh 298852382.66
둥근 사용 값을 표시하는 경우 다음을 사용할 수 있습니다.
Get-Process | Select-Object -Property Name, Path, @{Label = 'OverallUsage'; Expression = {[Math]::Round($_.NPM + $_.PM + $_.WS + $_.CPU)}} | Sort-Object -Property OverallUsage -Bottom 10
그만큼 [Math] :: Round () 함수는 개별 합계를 가장 가까운 전체 값으로 반올림하는 데 사용됩니다.
표준 Linux 명령이 PowerShell CMDLET보다 더 의미가있는 시나리오가 많이 있으며, 여러 경우에 따라 다른 방법으로는 두 패러다임을 함께 사용할 수 있다는 것입니다.간단한 예로 : 다음을 고려하십시오.
Get-Process | Select-Object -Property Name, Path, Responding, Id | grep cron
이것은 생성됩니다 :
anacron /usr/sbin/anacron True 3018
crond /usr/sbin/crond True 1033
yum-cron /usr/bin/python2.7 True 4760
세 번째 열은 프로세스가 응답하는지 여부를 나타냅니다.
보시다시피 PowerShell과 PowerShell과 Linux 명령의 조합은 다양한 문제와 작업을 해결하고 단순화 할 수있는 충분한 기회를 제공합니다.
작성자 Karlito Bonnevie / 4 월 26, 2022