Какое особое значение имеет «#» в рамках шаблона расширения параметров?

Я бы использовал немного другой подход и делал больше работы непосредственно в неловком состоянии. Во-первых, используйте FNR , который возвращается к 1 каждый раз, когда новый файл обрабатывается awk , и отправьте все a- или b- файлы в awk сразу:

$ for f in a b; do 
    awk '(FNR==1 && n>1){
            av=x/n;if(av>max){
                max=av;f=FILENAME
            }
        x=0; n=0
        }
        {x+=$4;n=FNR} 
        END{ 
            if(x/n>max){print x/n,FILENAME}
            else{print max,f}'
        } "$f"[1..4]/"$f"[1..4].txt; done
18898.4 a3.txt
18806 b4.txt

Это дает нам два файла с наибольшим средним значением. Чтобы переместить их, можно просто удалить значение из выходных данных сценария previus, сохранив только имя файла и передав его непосредственно команде cp :

$ cp -v $(for f in a b; do awk '(FNR==1 && n>1){av=x/n;if(av>max){max=av;f=FILENAME};x=0;n=0}{x+=$4;n=FNR} END{if(x/n>max) print x/n,FILENAME; else print max,f}' "$f"[1-4]/"$f"[1..4].txt; done) bar/
‘a3.txt’ -> ‘bar/a3.txt’
‘b4.txt’ -> ‘bar/b4.txt’

Обратите внимание, что это приведет к разрыву, если имена файлов содержат пробелы или символы glob.

-121--108158-

Я не думаю, что вы хотите делать то, что вы просите. Если требуется только вывод одной команды, используемой в качестве аргумента другой команды, то структуры, такие как $ (...) или '...' , являются вашим другом. Например:

sudo python ~/testsite/manage.py runserver $(hostname -I):80

Обратите внимание, что это НЕ то, что вы просили, а то, что вы хотите.

Если вы действительно хотите, чтобы stdin (канал) использовался в качестве аргумента, вы можете использовать xargs (1) или быстрый во время цикла в вашей оболочке.

Это помещает stdin в конец строки:

echo Hello | xargs echo "The word is:"

или если вы хотите что-то подставить внутри строки:

echo Hello | xargs -J % echo % is the word.

Но xargs может быть сложно использовать, если вы не в состоянии понять его (несколько арканового) использования. Команда xargs также варьируется от ОС к ОС; опция -J работает в BSD и OSX, но не в некоторых старых distros Linux. Я не знаю, какую ОС вы используете.

Цикл может быть проще:

echo Hello | while read word; do echo "$word is the word."; done

Или в вашем случае:

hostname -I | while read ip; do
    sudo python ~/testsite/manage.py runserver ${ip}:80
done

Цикл запускается только один раз, но вы можете собрать свою командную строку немного легче. ЯММВ.

-121--138817-

Раздел /dev/sda2 отображается как «полный», поскольку он полностью выделен для LVM, который управляет разделами / и /home . В результате нам не нужно напрямую смотреть на /dev/sda2 , а скорее на конфигурацию LVM. Из выходных данных lsblk видно, что

└─sda2                      8:2    0 595.9G  0 part 
  ├─ManjaroVG-ManjaroRoot 254:0    0  29.3G  0 lvm  /
  ├─ManjaroVG-ManjaroHome 254:1    0 558.9G  0 lvm  /home
  └─ManjaroVG-ManjaroSwap 254:2    0   7.8G  0 lvm  [SWAP] 

, скорее всего, весь LVM выделен ManjaroRoot , ManjaroHome и ManjaroSwap . Это означает, что расширение разделов не является опцией без предварительного добавления нового PV LVM или сокращения существующего LVM LV (не простая задача). Однако эти варианты лечат симптом, а не проблему.

Проблема в том, что / на устройстве /dev/mapper/ManjaroVG-ManjaroRoot заполнен. Раздел /home не заполнен и не относится к вашей проблеме.

Из ваших выходных данных du видно, что наибольшее использование диска в /:

3.2G    /data
1.1G    /opt
7.6G    /usr
14G     /var

Использование /data , /opt и /usr выглядит разумным, но отклонение составляет /var , который использует тонну космоса.

Некоторые обновленные сведения от вас в чате показывают, что это не проблема с журналом, как я подозревал, а скорее проблема с кэшем пакета pacman . Вы можете очистить старые файлы из кэша с помощью команды:

pacman -Sc 

Вы можете прочитать больше об очистке кэша пакетов на вики Arch.

3
23.06.2018, 22:00
2 ответа

С помощью systemd для инициализации цель восстановления systemd может быть достигнута путем добавленияsystemd.unit=rescue.target(или emergency.target, если это не удается, )к командной строке загрузки в /boot/cmdline.txt.

Если это не работает по какой-либо причине или в системе, отличной от -systemd, вместо этого добавьте init=/bin/shв конец строки, что заставит систему полностью проигнорировать все, что связано с инициализацией.

Возможно, вам потребуется смонтировать файловую систему для чтения -для записи, чтобы внести какие-либо изменения. Вы можете сделать это, добавив rwв командную строку загрузки или выполнив mount -o remount,rw /при загрузке.

4
27.01.2020, 21:18

systemd сканирует аргумент ядра. для отключения например cron.service добавить в загрузчик:

systemd.mask=cron.service 

Если у вас есть доступ к config.txt, вы должны изменить его на cmdline.txt.

Источник:

https://www.raspberrypi.org/documentation/configuration/config-txt/boot.md

Источник :https://www.freedesktop.org/software/systemd/man/kernel-command-line.html

0
27.01.2020, 21:18

Теги

Похожие вопросы