Ответы пользователя по тегу Linux
  • Как клонировать систему со всеми пользователями и настройками на меньший по объёму диск?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    1. вставляете диск2
    2. подготавливаете диск2, создав и отформатировав разделы
    3. монтируете разделы диска2 к своей системе
    4. внимательно читаете это
    5. выставляете в rsync то что вам нужно и копируете данные с диск1 на диск2
    6. на диске2 правите fstab и чините свой загрузчик
    7. отключаете диск1 и запускаете систему с диска2

    можно проделывать из системы которую переносим и без бекапа (так как мы не трогаем основную систему и в случае чего можно просто загрузится с диска1)
    Ответ написан
    Комментировать
  • Как с помощью awk вставить # в строчку 647?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    Как с помощью awk вставить # в строчку 647?

    вставить куда ? начало, конец, посередине ?
    если в начало, то:
    awk -i inplace 'NR==647{print "# "$0}NR!=647' a.txt

    где изменения мы пишем(-i inplace) прямо во входящий файл, в строку(NR) 647, добавляя перед всей строкой($0) решетку с пробелом("# "), при желании можно и без пробела("#"). Остальные строки(NR!=647) мы просто печатаем без изменений.
    Ответ написан
    Комментировать
  • Как сравнить значения в строках вывода и по условию выполнить скрипт?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    [[ $(sensors | awk '/Core/{i+=$3}END{print i/NR}') > 60 ]] && ./script.sh

    немного сократил ваш изначальный поиск температуры сделав всё через один awk + сделал через среднюю температуру всех ядер а не одного конкретного, думаю так будет правильнее.

    если вам всё же нужно не средняя а температура любого из ядер, то это довольно просто:
    [[ $(sensors | awk '/Core/{print $3}') > 60 ]] && ./script.sh

    при первом совпадении скрипт сработает
    Ответ написан
    Комментировать
  • Как с помощью цикла while, команды dig вывести в файл ips.txt A-записи домена, после чего на следующей строке PTR-запись IP?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    здесь можно обойтись и простым однострочником:
    dig +short vk.com |xargs -tI{} dig -x {} +short 2>&1|awk '/^dig /{print $3}!/^dig /'
    Ответ написан
    2 комментария
  • Как и куда bash убирает элемент массива?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    в простом случае:
    $ x='test1 test2'
    $ y=($x)
    $ echo ${y[0]} И ${y[1]}
    test1 И test2


    если же, например, у нас разделитель перевод строки то:
    $ x='test 1
    test 2'
    $ q="$IFS";IFS=$'\n';y=($x);IFS="$q"
    $ echo ${y[0]} И ${y[1]}
    test 1 И test 2
    Ответ написан
  • Как попасть в папку загрузок через консоль?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    Как оказалось,папка пользователя зашифрована

    откуда такие выводы ?
    вы ввели команду shell и попали в домашний каталог текущего пользователя chronos
    для справки:
    cd $HOME
    также должен перенести в папку текущего пользователя
    знак "~" также указывает на домашнюю директорию пользователся

    в последнем скриншоте после команды ls как раз и выводится содержимое домашней папки пользователя и как видно там есть папка Downloads, вот в неё и переходите раз вам нужно попасть в папку загрузок через консоль
    cd Downloads
    ну или из любого места
    cd $HOME/Downloads
    аналог:
    cd ~/Downloads
    Ответ написан
    7 комментариев
  • Можно ли подставить имя файла из ls?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    не совсем понятна задача
    не можете скопировать мышкой и не работает автодополнение ?
    узнаём номер нужной строки:
    ls -A1 | nl'
    если нужны только видимые(без точки в начале имени) файлы то можно упустить ключ A
    выводим строку по её номеру:
    ls -A1 | awk 'NR==7'
    где 7 это пример номера строки с нужным именем файла выданный с помощью команды ls, ставим свой номер.
    при желании можно завернуть это в переменную и просто вставлять где нужно:
    f=$(ls -A1 | awk 'NR==7')
    далее уже можно будет оперировать этой переменной, например:
    rm "$f"

    п.с.
    если нужно больше интерактива то можно воспользоваться утилитой skim(sk) или fzf
    f=$(ls | fzf)
    для скрытых файлов добавить ключ -A
    даст возможность выбрать нужный файл клавишами(верх, низ), а затем(Enter) передать его в переменную.
    ну а дальше уже оперируем переменной f
    Ответ написан
    Комментировать
  • Резервное копирование и восстановление etx4 возможно только в посекторном режиме?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    Статься на Хабре прям для вас: Копирование разделов жёсткого диска средствами GNU/Linux: как обойтись загрузочной флешкой там, где раньше нужен был Акронис.
    Ответ написан
    Комментировать
  • Как подключиться к локальному юзеру Linux через filezilla?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    поднимите ssh-сервер на локальном компьютере
    а в поле Нost ведите 127.0.0.1 или localhost или ваш IP адрес выданный DHCP роутера(если есть)
    Ответ написан
  • Awk, как объединить столбцы при передаче в shell?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    $ echo "a1 a2 a3 15-Aug-2019 00:24:38 a6 ..." | awk '{z="date -d \""$4" "$5"\" \"+%s\""; z | getline z; print z}'
    1565817878

    ну или вывести в самой строке
    $ echo "a1 a2 a3 15-Aug-2019 00:24:38 a6 ..." | awk '{z="date -d \""$4" "$5"\" \"+%s\""; z | getline z; $4=z;$5="";print}'
    a1 a2 a3 1565817878  a6 ...

    немного покороче
    $ echo "a1 a2 a3 15-Aug-2019 00:24:38 a6 ..." | awk '{"date -d \""$4" "$5"\" \"+%s\""|getline $4;$5="";print}'
    a1 a2 a3 1565817878  a6 ...


    upd. (исправление)
    $ echo "a1 a2 a3 15-Aug-2019 00:24:38 a6 ..." | awk '{"date -d \""$4" "$5"\" \"+%s\"" | getline z; $4=z;$5="";print}'
    a1 a2 a3 1565817878  a6 ...
    Ответ написан
    4 комментария
  • Какой лучше использовать тип архива gz или bz2?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    для сохранения прав можно запрячь rsync или tar а для сжатия лучше xz
    как пример https://wiki.archlinux.org/title/Rsync#Full_system...
    Ответ написан
  • Как использовать регулярные выражения в цикле консоли Линукс?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    Или есть более простой способ, чтобы сохранить картинки в новой папке?

    cp $(cat images_file) --target-directory="new_path/"
    Ответ написан
    Комментировать
  • Как правильно устанавливать linux с двумя жёсткими дисками?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    как люди любят себе усложнять жизнь )
    lvm, btrfs, zfs, рейды, 100500 разделов ... брр
    ставьте на nvme одни(/) раздел (или два[+ /boot] если у вас UEFI), не отделяя хомяк в отдельный раздел
    а на ssd можно будет скидывать тяжелые файлы - фильмы, музыка, виртуальные машины и др., а также бекап важных данных с nvme
    По поводу рут и Хоум на nvme - это же очень много для системы и кофигов. 90% будет пустовать на этом диске.

    не страшно, во первых, хомяк со временем растёт, во вторых чем больше свободного места тем дольше прослужит ваш nvme, так как данные не перезаписываются сразу по месту как в hdd, а "равномерно дописываются" на свободное место.
    В общем если кратко, как лучше спроектировать дисковое пространство с точки зрения перспективы безгеморойной переустановки в будущем?

    легко, копируете папку с вашим пользователем(что в хомяке) на ssd, накатываете на nvme новую систему по тому же принципу, копируете папку пользователя обратно, создаёте пользователя указав эту папку как его хом попутно при необходимости рекурсивно меняем права(chown -R ...) в данной папке на нужные.
    ну и вроде всё.

    п.с.
    вместе с диском докупил ещё планку памяти

    раз ОЗУ у вас с избытком то чтобы меньше мучать диск можно в fstab добавить параметр commit=60 что позволит системе производить запись на диск раз в минуту держа эти данные в памяти, в принципе можно и больше, у себя например довел до двух минут и вроде пока нормально.
    Ответ написан
    5 комментариев
  • Monjaro xfce не устанавливатеся. Что делать?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    так установка или запуск системы со скачанного образа ?
    судя по ошибке /run/miso/sfs/livefs похоже что не может нормально примонтироваться fs с live-системы(iso)
    проверьте скачанный образ, возможно он не совсем целый
    у него должно совпадать контрольная сумма
    SHA1: 058930ae297906a8611e6db501d68cc34b710ba1
    под линукс проверяется так:
    $ sha1sum manjaro-xfce-21.0.4-210506-linux510.iso
    058930ae297906a8611e6db501d68cc34b710ba1  manjaro-xfce-21.0.4-210506-linux510.iso

    под виндой не знаю, погуглите, возможно нужно скачать отдельную программу для этого
    Ответ написан
    Комментировать
  • Bash, head и tail: Невозможно открыть для чтения?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    осталась одна ошибка в 7 строке: ./analiz.sh: строка 7: *1: синтаксическая ошибка: ожидается операнд (неверный маркер «*1»)

    cpuload=$(($var*1))
    во первых можно визуально немного упростить
    cpuload=$[var*1]
    во вторых, ругается из за того что переменная var пустая
    можно задать значение для var если она будет пуста
    cpuload=$[${var:=999}*1]
    здесь если переменная var не заданна то её значение для этого выражение станет равным 999
    Ответ написан
    Комментировать
  • Как мне написать скрипт который будет выводить на экран СОДЕРЖИМОЕ файлов директории?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    [[ -d $1 ]] && cat $1/* 2>/dev/null
    Ответ написан
    Комментировать
  • Как вынести Linux на новый накопитель и сделать его основным, оставив Windows на старом, подключая по необходимости?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    в простом случае будет по новому разметить новый диск и склонировать туда Manjaro
    # rsync -aAXHv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /path/to/backup

    подробнее смотри Rsync#Full_system_backup
    потом правим /etc/fstab и обновляем grub
    когда система заведётся на новом диске далее уже думать об удалении ненужностей на старом диске
    Ответ написан
    2 комментария
  • Grub error: unknown filesystem?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    похоже вы не ведали что творили :)
    полагаю вы сделали общий динамический диск

    п.с.
    да и картинку хотя бы какую-то приложили (желательно где управление дисками)

    п.с.2
    Что такое динамические диски
    5. Как преобразовать динамический диск в базовый
    Windows может преобразовывать диски из базового типа в динамический с сохранением их разметки и содержимого. А вот с обратным направлением будем иметь головную боль: оно работает, если только жёсткий полностью неразмечен. Чтобы не терять данные, придётся прибегнуть к помощи стороннего софта – например, AOMEI Dynamic Disk Manager, AOMEI Dynamic Disk Converter или Acronis Disk Director.
    Ответ написан
    Комментировать
  • Как разметить память на ubuntu 16.04?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    если нужно расширить раздел на диске то обычно делается так:
    сначала нужно узнать какой диск и какой на нём раздел нужно расширить
    какой диск можно глянуть командой
    lsblk
    допустим это будет диск /dev/sda
    по занимаемому разделами месту можно глянуть
    занято
    sfdisk -l /dev/sda
    свободно
    sfdisk -F /dev/sda
    или просто воспользоваться cfdisk которая покажет всё в псевдо-графическом режиме
    cfdisk /dev/sda
    пусть это будет второй раздел (/dev/sda2) на диске который нужно расширить до конца диска
    если раздел /dev/sda2 примонтирован то его нужно размонтировать:
    umount /dev/sda2

    далее идут два этапа
    1) изменить таблицу разделов(ТР) диска указав нужный размер для разделов
    2) изменить сам размер файловой системы(ФС) для данного раздела

    1.
    на всякий случай сохраним дамп ТР чтобы в случае чего можно было восстановить
    sfdisk --dump /dev/sda > sda.dump
    потом если нужно будет восстановить
    sudo sfdisk /dev/sda < sda.dump
    кстати --dump генерирует простой человеко-читаемый формат
    теперь в ТР указываем новые границы для раздела /dev/sda2
    echo ", +" | sudo sfdisk -N 2 /dev/sda
    где -N 2 это второй раздел, ", +" == "начало, размер" раздела, а + это сокращенная запись указывающая на размер который нужно задать по умолчанию, это максимально возможный размер, то есть если после второго раздела идёт пустое пространство вплоть до конца диска то sfdisk растянет раздел до конца диска ну или до начала следующего раздела если он там будет.
    проверяем ТР на возможные ошибки
    sfdisk -V /dev/sda
    вместо вышеописанных манипуляций с sfdisk можно воспользоваться всё той же псевдографической утилитой сfdisk, там довольно просто можно разобраться как изменить ТР (см. [Resize])

    2.
    теперь нужно растянуть ФС до размеров указанных в ТР
    для начала удостоверимся что с ФС всё в порядке
    e2fsck -f /dev/sda2
    далее идёт само расширение
    sudo resize2fs /dev/sda2
    данная команда расширяет ФС раздела /dev/sda2 до границ указанных в ТР
    ну и напоследок еще раз проверим
    e2fsck -f /dev/sda2
    Ответ написан
    Комментировать