apt install cloud-utils
growpart /dev/sda 3
pvresize /dev/sda3
lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
$ lsblk -lo NAME,FSAVAIL,FSUSED,FSUSE\% | awk 'NF>1'
NAME FSAVAIL FSUSED FSUSE%
nvme1n1p1 423M 88M 17%
nvme1n1p2 423,2G 29G 6%
nvme0n1p2 360,2G 73,3G 16%
awk
здесь используется для отсечения не смонтированных ФС и самих дисков у которых естественно будет отсутствовать доступный размер.FSSIZE
-n
$ lsblk -nlo NAME,FSAVAIL,FSUSED,FSUSE\% | awk 'NF>1'
nvme1n1p1 423M 88M 17%
nvme1n1p2 423,2G 29G 6%
nvme0n1p2 360,2G 73,3G 16%
$ lsblk -nlo NAME,FSAVAIL,FSUSED,FSUSE\% /dev/nvme1n1p2
nvme1n1p2 423,2G 29G 6%
$ lsblk -no FSUSED /dev/nvme1n1p2
29G
$ lsblk -Jo FSUSED /dev/nvme1n1p2 | jq -r '.blockdevices[].fsused'
29G
-b
$ lsblk -Jbo FSUSED /dev/nvme1n1p2 | jq -r '.blockdevices[].fsused'
31178240000
nvme1n1p2
отобразим в форматированном виде информацию по свободному и занятому пространству:$ lsblk -Jo FSAVAIL,FSUSED /dev/nvme1n1p2 | jq -r '.blockdevices[] | "Всего занято:\t\(.fsused)\nВсего свободно
:\t\(.fsavail)"'
Всего занято: 29G
Всего свободно: 423,2G
sudo smartctl -ja /dev/nvme0n1 | jq -r '.nvme_namespaces[] | "Всего занято:\t\(.utilization.bytes)\nВсего свободно:\t\(.capacity.bytes - .utilization.bytes)"'
Всего занято: 88322768896
Всего свободно: 411785093120
$ sudo smartctl -ja /dev/nvme0n1 | jq -r '.nvme_namespaces[] | "Всего занято: \(.utilization.bytes)\nВсего свободно: \(.capacity.bytes - .utilization.bytes)"' | numfmt --to=iec --field 3 --padding=1 --format %.1f
Всего занято: 82,3G
Всего свободно: 383,6G
shutdown -s -t 0
powercfg -h off
Тогда любое выключение будет полным (и соответствующий запуск windows медленным) На машине какого цвета лучше ездить на работу летчиком?
lvextend -L+11G /dev/VolGroup00/LogVol00 <- увеличить раздел на 11Гигов
fsadm resize /dev/VolGroup00/LogVol00 <- резайзить данный раздел
Как работает sudo?Что конкретно интересует, то что sudo позволяет выполнять команды от имени другого пользователя, или то, как технически оно устроено внутри?
Всём привет, хотел узнать какие команды можно вводить в QuteВводить то можно абсолютно любые, но не все они будут работать.
почему то ввожу различные команды и у меня пишет, что нет доступа /доступ запрещенНа каком устройстве находится Qute? На автомобиле, чайнике, умных часах, телефоне, или может вы используете вообще виртуальную машину?
нет доступа /доступ запрещенЭто потому, что нет root-прав. Чтобы их получить, нужно рутировать устройство. Для этого идем на 4пда и ищем там на форуме инфо по конкретному девайсу.
curl -s https://www.cbr.ru/scripts/XML_daily.asp | awk -F '</Valute>' '{for (i=1; i<=NF; i++) if($i ~ /USD|EUR/) print substr($i, index($i, "CharCode")+9,3)" "substr($i, index($i, "Value")+6,7)}' 2>/dev/null
wget -qO- https://www.cbr.ru/scripts/XML_daily.asp | awk -F '</Valute>' '{for (i=1; i<=NF; i++) if($i ~ /USD|EUR/) print substr($i, index($i, "CharCode")+9,3)" "substr($i, index($i, "Value")+6,7)}' 2>/dev/null
perl -MLWP::Simple -e '$_=get("https://www.cbr.ru/scripts/XML_daily.asp");while(m/(USD|EUR).+?Value>([^<]+)/g){print "$1 $2\n"}'
python3 -c 'import requests,re;print("\n".join([" ".join(i.groups()) for i in list(re.finditer(r"(USD|EUR).+?Value>([^<]+)", requests.get("https://www.cbr.ru/scripts/XML_daily.asp").text))]))'
# вариант 1 (RegEx)
(Invoke-WebRequest -UseBasicParsing -URI 'https://www.cbr.ru/scripts/XML_daily.asp').Content | Select-String '(USD|EUR).+?Value>([^<]+)' -AllMatches | foreach {$_.Matches.Groups[1,2,4,5].Value}
# вариант 2 (XML/XPath)
([xml](Invoke-WebRequest -UseBasicParsing -URI 'https://www.cbr.ru/scripts/XML_daily.asp').Content).SelectNodes('//Valute[CharCode="USD" or CharCode="EUR"]') | ft Name,Value
node -e "https.get('https://www.cbr.ru/scripts/XML_daily.asp',r=>{s='';r.on('data',d=>s+=d);r.on('end',()=>[...s.matchAll(/(USD|EUR).+?Value>([^<]+)/g)].forEach(e=>console.log(`${e[1]} ${e[2]}`)))})"
$ curl -s "http://www.cbr.ru/scripts/XML_daily.asp" | enconv -x UTF-8 | xq -r '.ValCurs.Valute[] | select(.CharCode == "USD" or .CharCode == "EUR") |.CharCode + " " + .Value'
USD 74,7087
EUR 79,5716
curl -s "http://www.cbr.ru/scripts/XML_daily.asp" | enconv -x UTF-8 | xq -r '.ValCurs.Valute[] | .CharCode + " " + .Nominal + " " + .Value' | sort | awk 'BEGIN{print "Code Nominal Value"}{print}' | csview -d' '
┌──────┬─────────┬─────────┐
│ Code │ Nominal │ Value │
├──────┼─────────┼─────────┤
│ AED │ 1 │ 20,3400 │
│ AMD │ 100 │ 19,1325 │
│ AUD │ 1 │ 51,0933 │
│ AZN │ 1 │ 43,9463 │
│ BGN │ 1 │ 40,7332 │
│ BRL │ 1 │ 14,3646 │
│ BYN │ 1 │ 26,6998 │
│ CAD │ 1 │ 55,2743 │
│ CHF │ 1 │ 80,5485 │
│ CNY │ 1 │ 10,8398 │
│ CZK │ 10 │ 33,5739 │
│ DKK │ 1 │ 10,7002 │
│ EGP │ 10 │ 24,4263 │
│ EUR │ 1 │ 79,5716 │
│ GBP │ 1 │ 90,6889 │
│ GEL │ 1 │ 28,3363 │
│ HKD │ 10 │ 95,3890 │
│ HUF │ 100 │ 20,7001 │
│ IDR │ 10000 │ 49,2185 │
│ INR │ 100 │ 90,1603 │
│ JPY │ 100 │ 55,4219 │
│ KGS │ 100 │ 85,4595 │
│ KRW │ 1000 │ 57,2524 │
│ KZT │ 100 │ 16,7640 │
│ MDL │ 10 │ 39,8181 │
│ NOK │ 10 │ 72,3823 │
│ NZD │ 1 │ 46,5734 │
│ PLN │ 1 │ 16,7565 │
│ QAR │ 1 │ 20,5244 │
│ RON │ 1 │ 16,1333 │
│ RSD │ 100 │ 67,8622 │
│ SEK │ 10 │ 72,2507 │
│ SGD │ 1 │ 55,7819 │
│ THB │ 10 │ 21,5775 │
│ TJS │ 10 │ 69,2908 │
│ TMT │ 1 │ 21,3453 │
│ TRY │ 10 │ 39,6051 │
│ UAH │ 10 │ 20,2313 │
│ USD │ 1 │ 74,7087 │
│ UZS │ 10000 │ 66,0995 │
│ VND │ 10000 │ 31,6013 │
│ XDR │ 1 │ 99,6569 │
│ ZAR │ 10 │ 40,6808 │
└──────┴─────────┴─────────┘
$ curl -s "http://www.cbr.ru/scripts/XML_daily.asp" | enconv -x UTF-8 | xq -r '.ValCurs.Valute[] | select(.CharCode == "USD" or .CharCode == "EUR") |.CharCode + " " + .Nominal + " " + .Value' | awk 'BEGIN{print "Code Nominal Value"}{print}' | csview -d' '
┌──────┬─────────┬─────────┐
│ Code │ Nominal │ Value │
├──────┼─────────┼─────────┤
│ EUR │ 1 │ 79,5716 │
│ USD │ 1 │ 74,7087 │
└──────┴─────────┴─────────┘