• Замена в iptables?

    @krosh
    iptables-save > tmp.save
    sed -i 's/AAA(рандомное число)AAA/AAAA(нужное число)AAA/g' tmp.save
    iptables-restore < tmp.save
    Ответ написан
    4 комментария
  • Что представляет из себя директория /proc, /tmp?

    @Karpion
    tmpfs обычно хранится в оперативке, но при нехватке памяти может свопиться на диск. Главное её свойство - это отсутствие транзакционных методов работы, необходимых нормальной файловой системе - это даёт скорость, а надёжность там не нужна, ибо при ребуте она чистится.
    Хранить там свои файлы - можно и нужно. Но надо помнить: "при ребуте она чистится".

    procfs не хранится нигде, а генерится на лету. Поясняю очень приблизительно:

    Когда команда ls смотрит обычную файловую систему (обращается в директории, которую обслуживает обычная файловая система), то драйвер файловой системы читает некое хранилище - обычно HDD/SSD. И там лежат имена файлов - их можно найти программой типа diskedit (если Вы заете, что это такое).

    Когда команда ls смотрит корень procfs - то драйвер procfs не читает никаких носителей, а запускает внутри себя команду ps (любители корректных формулировок сейчас закидают меня тапками). ps читает список запущенных процессов (который, вообще-то, хранится в памяти - в данных ядра) и передаёт его драйверу procfs. А драйвер procfs на основе этой информации формирует список номеров процессов.

    Если команда ls смотрит в поддиректорию procfs - то драйвер procfs берёт информацию из данных ядра конкретно про этот процесс; эта информация тоже лежит в памяти, тоже в данных ядра.

    Собственно, разница в том, что драйвер обычной файловой системы читает данные как они лежат - потому делает это строго в монопольном режиме, никто другое не имеет права их трогать. А драйвер procfs работает с данными, которые ядро в любой момент может поменять - и потому не читает их из места хранения, а запрашивает через "кладовщика" - через того же, через кого эти данные запрашивает программа ps и её "родственники".

    А есть ещё одна интересная файловая система: devfs для директории /dev ...
    Ответ написан
    Комментировать
  • Что представляет из себя директория /proc, /tmp?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    1) Если /proc не хранит информация не на диске, не в рам - то где вообще? Не понимаю(

    /proc это вообще абстракция. Ядро системы знает какие процессы сейчас запущены и хранит это в памяти. А в /proc визуализирует это, предоставляя некий интерфейс в виде "все есть файл". Просто нужно понимать, что это не ext2/ext3/ext4 эмулируемый в памяти, это именно procfs

    2) Например я в bash. Возможно ли как-то получить мой вывод, смотря в папку /proc процесса bash?

    да, можете подключиться к вашему stdout, который собственно/proc/<PID>/fd/1
    можно посмотреть как вы подключились и куда смотрит ваш /proc/<PID>/fd/1 (скорее всего в какой-нить /dev/pts/0) и оттуда тоже смотреть.

    3) Если папка /tmp хранится в ОЗУ, могу ли я там хранить свои временные файлы для мгновенного доступа?

    Да. Только нужно помнить, что tmpfs не ограничен, то есть чем больше туда кладешь, тем меньше свободного ОЗУ остается

    4) Как можно реализовать подобное: Есть файл, в который постоянно пишется информация, чтобы он не занимал много места, я ставлю условный лимит в 10000кб, когда файл начинает весить больше, то разница будет стёрта из начала файла.

    Нужно понимать, что стереть 10 байт из начала файла нельзя, потому что нужно сдвинуть содержимое всего файла. Другими словами - файл целиком придется перезаписать.
    Поэтому применяют другой способ - log rotate - когда идет запись в файл, проверяется его размер. Если он превысил значение, файл переименовывается (например в file.log.1) и открывается новый файл file.log
    Можно контролировать сколько файлов может быть в списке и не забывать переименовываьт все файлы, чтобы они соответствовали порядку. Но этим нужно заниматься тому, кто пишет в файл.
    Ответ написан
    9 комментариев
  • Как определить, какой программой генерируется файл в Linux?

    fzfx
    @fzfx
    18,5 дм
    в первом случае - заранее настроить аудит и искать событие доступа к файлу в /var/log/audit.log
    во втором - inotify.
    Ответ написан
    Комментировать
  • Как определить, какой программой генерируется файл в Linux?

    Adamos
    @Adamos
    Пока программа работает с файлом - она держит его открытым. Мониторьте lsof.
    Или, если у вас есть подозрение на конкретную программу - запустите ее от имени уникального пользователя. Созданные ей файлы будут принадлежать этому пользователю.
    Ответ написан
    3 комментария
  • Что использовать для монтирования YandexDisk/WebDAV под Linux с шифрованием?

    shambler81
    @shambler81 Куратор тега Linux
    создаеш файлик (файл это блочное устройство) форматируешь его под ext2, кидаеш его на яндекс диск монтируешь файлик аки диск в системе, наслаждааешся ;)
    Только не надо говорить что ты не разу не форматировал файлы под файловую систему
    пример dvg /iso
    Ответ написан
    2 комментария
  • Как перенести виртуальной машину virtualbox linux mint на реальную?

    @rPman
    Подключаете физический диск как диск в виртуальную машину (читайте про команды VBoxManage internalcommands и уже изнутри виртуальной машины делайте копию, всем что вам понравится.

    Я советую это делать не из системы, которую вы копируете, тогда у вас появится возможность использовать оптимальные инструменты, тот же clonezilla удобный и многофункциональный, позволит не только скопировать но и делать это с разными размерами источника и диска назначения.
    Ответ написан
    Комментировать
  • Как найти папки с самым большим количеством файлов в linux?

    @polar_yogi
    чуть быстрее:
    find / -print0 | xargs -0 dirname |  uniq -c | sort -n -k 1 | tail -1
    Ответ написан
    Комментировать
  • Есть ли у apt-get команда для сборки пакета для chroot?

    @pfg21
    ex-турист
    качать через apt-get с параметром -d (download only)
    скачает пакеты в локальную директорию.
    ставить через dpkg --root=/path/to/dir
    Ответ написан
    2 комментария
  • Как передавать пароли сотрудникам?

    mmmaaak
    @mmmaaak
    Одну часть пароля в смс, вторую часть по email, третью честь на бумажке заказным письмом.
    Ответ написан
    3 комментария
  • Проброс бытовой видеокарты. RDP. Samsung DeX. Альтернативы?

    @Drno
    Вставлю свои 5 копеек.
    На windows server через Hyper-v пробрасываются в виртуалку любые карты, по крайней мере зеленые работали. Как и через что снять с виртуалок картинку с 3d - тут не подскажу.

    По второму вопросу - несоклько пользователей на любой версии винды. софт называет RDPWrapper!!! Этим Вы нарушите лиценз соглашение майкрософт. Но по сути просто подменяет dll на серверную версию)
    Ответ написан
    3 комментария
  • Какой Linux стоит установить для освоения?

    POS_troi
    @POS_troi
    СадоМазо Админ, флудер, троль.
    Ой, а можно и я, можно, можно? :)
    CentOS, вот и SELinux не отключать :)
    Ответ написан
    Комментировать
  • Как лучше реализовать структуру файлохранилища для средней (200-250 человек) организации?

    MaxLK
    @MaxLK
    сети, виртуализация, СХД...
    Вы роете себе громадную яму. Рейд 10 нельзя использовать вообще. Хотя выглядит все великолепно, на практике он умирает со всем данными безвозвратно. Из 4х дисков лучше собирать 3й с горячей заменой. Супермикро совершенно не вписывается в концепцию "Мне нужно, чтобы это было надежно и работало, как часы". Нужно исходить из доступного бюджета, задач, и допустимого времени простоя. 200 пользователе могут изредка скидывать готовые текстовые файлы, а могут дружно рендерить 3Д. требования к железу будут совершенно разные.
    Из описания не ясно - на хранлку ВМ будут бекапиться, или работать с нее?
    Если денег нет совсем, но хочется, кроме Синолоджи есть Кунап. который кроме CIFS умеет блочный достпуп и NFS, встроенными средствами умеет синхронизироваться между устройствами, сетевые "корзины" (куда будет падать все удаляемое) не доступные пользователям (или доступные, как настроите), логирование действий, консоль мониторинга. а еще с этого года умеет сервисное обслуживание.

    Задача на самом деле не так проста, как кажется сначала. Если собрать решение из говна и палок - результат будет соответствующий. Например будьте готовы что для обновления ПО Вам придется перезагружать устройства, что предполагает работу по ночам или в выходные. Насколько оно Вам нужно? По опыту, нагруженная хранилка на САТА дисках за два года требует замены всех дисков - считайте стоимость владения закладываясь на форсмажоры.

    Я бы рекомендовал обратиться к интеграторам, одному-двум хотя бы. Вы получите представление о том, что и как надо считать для подбора решения, у Вас появится представление о существующих решениях, их функционале. Вам надо обязательно озвучивать допустимое время простоя, возможность масштабирования. Учитывать не только стоимость решения, но и стоимость поддержки, во что Вам выльется ее отсутствие по деньгам, времени на самостоятельное решение проблем как программных, так и аппаратных, времени внедрения. Чтобы Вам посчитали производительность в IOPS, учли производительность сетевого оборудования уровня ядра и уровня доступа, интерфейсы оборудования в пользовательскую сеть и между собой, для блочных устройств нужно еще посчитать нужна ли SAN сеть и ее стоимость, сможете ли Вы сами ее настроить. Учесть требования по питанию в нужное время работы без оного, количество портов питания и заложить PDU исходя из этого и кабеля с подходящими разъемами. Не забыть посчитать сколько места это займет в стойках, его вес и габариты (чтобы Вы могли занести это в помещение через существующие двери и после установки оно не провалилось в подвал вместе со стойками и перекрытиями). Учесть как вы будите восстанавливать бекапы, что если Вы их будите хранить на виртуалках на которых погибнут диски - у Вас все пропадет на корню, а если просто на дисках в рейде - на восстановление у Вас уйдет около недели при гибели рейда (это если в Вашем городе есть контора по восстановлению и есть на это денешка). Начните с ТЗ в котором будут все Ваши требования по объемам, скорости работы, типам данных и их объему, существующие каналы в ядре и к пользователям, время на восстановление из бекапа, время восстановления оборудования с бекапом. Зная скорость в ядре сети и скорость к пользователям Вы сможете примерно рассчитать максимально доступную скорость и объем данных которую Вы сможете забирать с хранилки, то есть какие диски Вам нужны и их количество. Учтите что вендоры рекомендуют заполняемость хранилок не более 60%, при большей заполненности может значительно просесть производительность. Практика показывает, что результат работы интегратора очень полезно показать вендору с просьбой проверить на корректность ТЗ и наличию всех необходимых лицензий. И вообще пообщаться с техотделом вендора очень полезно для понимания что и как будет работать, действительно ли то, что Вам предложили Вам нужно или есть другие решения. Кстати после такого общения иллюзия "я воткну рейд 10 в супермикро и у меня все залетает и будет надежно на 100%", как правило проходит. Или становится непоколебима :)

    Учтите, что если Вы что-то из этого сделаете неправильно, или забудете - после внедрения придется отвечать на вопрос типа "мы вложили кучу денег в решение, а в результате получили кучу проблем, лаги и тормоза - как будешь возмещать?!". Если заложенного бюджета не хватает на решение, которое соответствует задачам - надо готовить два варианта, подходящий под задачи и подходящий по деньгам со списком + и - и говорить "можно дешевле, но тогда нас ждет это ..." Тогда когда настанет жопа можно будет хотя бы сказать что решение принимало руководство и эта жопа была запланирована и ожидаема.
    Ответ написан
    2 комментария
  • Как решить проблему с if..else в bash?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    По умолчанию баш создает все переменные текстовыми, следовательно
    res=$a+$b у вас получается контакенация строк, а не сложение чисел.

    Используйте явное арифметическое сложение через res=$(( $a + $b ))
    либо заранее все переменные задекларируйте как integer через
    declare -i a
    declare -i b
    declare -i res
    declare -i path

    А в идеале и сравнение вместо [[ "$path" = "$res" ]] делайте числовым [[ $path -eq $res ]]
    Ответ написан
    1 комментарий
  • Как лучше реализовать структуру файлохранилища для средней (200-250 человек) организации?

    @rPman
    200 пользователей, нагрузка может оказаться приличная. Вы готовы до хранилища 10гигабит тянуть? Или у вас 6тб ssd?

    Мой совет, подумайте о разделении хранилища на несколько, по задачам. Не все же 200 человек лезут к одним и тем же данным, наверняка там по подразделениям легко все поделить. Речь не о доступе а о физическом размещении данных по железу (диски и сервера со своими сетевыми подключениями).

    Даже если все это железо будет в одной стойке сидеть, главное физически разделить данные. Из-за этого вместо 3тб hdd и больше дисков иногда оправданы 1тб размеры (меньше уже цены за гигабайт грустные).
    Ответ написан
    Комментировать
  • Как тестировать драйвера?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    С копмиляцией вам уже посдказали. Давайте я про отладку расскажу. Во первых очень желательно иметь две машины - одну для компиляции и отладки, вторую - таргет, куда все грузим и где тестируем и проверяем
    1) используем printk, в 95% случаев этого достаточно
    2) если аппаратура позволяет, используем jtag - это аппаратный модуль для отладки - 100% успех!
    3) можно использовать kgdb - не всегда это работает.

    Ну и совсем сильная магия - использовать статическую область памяти, где реализуем кольцевой буфер и туда пишем своими средствами отладочную информацию напрямую. Но для этого статическая память должна быть на каком-то из устройств, я обычно пишу в статику в часики реального времени, но не везде они есть и имеются. За то таким образом можно отлаживать абсолютно все, от NME, до драйверов высокоскоростных устройств.
    Ответ написан
    2 комментария
  • Ubuntu. Как создать фейковый USB из папки?

    @pfg21
    ex-турист
    файловая система из файла-образа монтируется через loop-устройство.
    гугли "mount -o loop" тема давняя расписано в куче мест.
    Ответ написан
    Комментировать
  • Есть адрес сети 192.168.01.0, нужно разбить на 20 подсетей с максимально возможным количеством узлов. Как выбрать маску?

    @res2001
    Developer, ex-admin
    Для адреса сети 192.168.1.0 обычно используется маска 24 (т.е. 255.255.255.0), хотя было бы не плохо, чтоб в условии задачи была явно задана маска.
    Что бы поделить эту подсеть на 20 подсетей нужно увеличить маску на несколько бит. Число 20 может быть представлено минимум 5 битами. Поэтому увеличиваем маску на 5 бит. Получаем маску 29 (24+5) (т.е. 255.255.255.248). Количество хостов в каждой из 32, поучившихся подсетей максимум 8 (но т.к. 0 и последний адрес являются широковещательными, то на самом деле их 6).
    Примеры получившихся подсетей:
    192.168.1.0/29 - адреса хостов: 192.168.1.0 - 192.168.1.7
    192.168.1.128/29 - адреса хостов: 192.168.1.128 - 192.168.1.135
    192.168.1.168/29 - адреса хостов: 192.168.1.168 - 192.168.1.175
    192.168.1.248/29 - адреса хостов: 192.168.1.248 - 192.168.1.255

    Подсетей получилось 32, а не 20, т.е. 12 подсетей будет не использовано. На практике обычно бывает, что есть дополнительные условия. Например некоторые из 20 подсетей имеют больше 6 хостов, но в большинстве подсетей 2-3 хоста. В этом случае можно оптимизировать деление на подсети - использовать не равномерное разделение (одна маска), а разную длину маски для разных подсетей в зависимости от дополнительных условий.
    Ответ написан
    Комментировать
  • Стоит ли переезжать на windows 10 с Linux из-за проблем с драйверами железа?

    @Gytim
    У меня гибридная видеокарта, вот это боольна с linux. Боль и печаль, linux никакой не заходит, видос посмотреть невозможно на ютубе, на win7 драйверов нету, только 10ка. Если бы у меня были проблемы выше, я бы был счастлив.
    Ответ написан
    Комментировать