Unix: То, как Протестировать IP-адрес, разрешено для именования

Редактирование 2015

с util-linux 2.25, fallocate утилита на Linux имеет a -d/--dig-hole опция для этого.

fallocate -d the-file

Вырыл бы яму для каждого блока, полного нулей в файле


В более старых системах можно сделать это вручную:

Linux имеет a FALLOC_FL_PUNCH_HOLE опция к fallocate это может сделать это. Я нашел сценарий на GitHub с примером:

Использование FALLOC_FL_PUNCH_HOLE из Python

Я изменил его немного, чтобы сделать то, что Вы спросили - дыры перфорации в регионах файлов, которые заполнены нулями.Вот:

Используя FALLOC_FL_PUNCH_HOLE от Python до дыр перфорации в файлах

usage: punch.py [-h] [-v VERBOSE] FILE [FILE ...]

Punch out the empty areas in a file, making it sparse

positional arguments:
  FILE                  file(s) to modify in-place

optional arguments:
  -h, --help            show this help message and exit
  -v VERBOSE, --verbose VERBOSE
                        be verbose

Пример:

# create a file with some data, a hole, and some more data
$ dd if=/dev/urandom of=test1 bs=4096 count=1 seek=0
$ dd if=/dev/urandom of=test1 bs=4096 count=1 seek=2

# see that it has holes
$ du --block-size=1 --apparent-size test1
12288   test1
$ du --block-size=1 test1
8192    test1

# copy it, ignoring the hole
$ cat test1 > test2
$ du --block-size=1 --apparent-size test2
12288   test2
$ du --block-size=1 test2
12288    test2

# punch holes again
$ ./punch.py test2
$ du --block-size=1 --apparent-size test2
12288   test2
$ du --block-size=1 test2
8192    test2

# verify
$ cmp test1 test2 && echo "files are the same"
files are the same

Отметьте это punch.py только находит, что блоки 4 096 байтов выбивают, таким образом, это не могло бы сделать файл точно столь же редким, как это было, когда Вы запустили. Это могло быть сделано более умным, конечно. Кроме того, это только слегка тестируется, так быть осторожным и сделать резервные копии прежде, чем доверять ему!

0
29.08.2013, 17:16
2 ответа

Можно использовать getent команда с hosts параметр как это:

getent hosts www.google.com

И количество, сколько результатов это добирается:

getent hosts www.google.com | wc -l

getent пользуется службой имен библиотеки Switch, чтобы сделать различные поиски имени. Со вторым параметром можно определить, какой вид дб Вы хотите к поиску. Проверить man getent для деталей.

2
28.01.2020, 02:37
  • 1
    Спасибо это будет управлять работой во всей ОС (т.е.) Unix?? –  Ram 29.08.2013, 17:20
  • 2
    я не уверен в - все-ОС, но она работает над Linux, FreeBSD и Солярисом, который уже касается довольно много. –  replay 29.08.2013, 17:23

Показ двух возможных подходов, которые являются портативными.

#!/bin/sh

reverseDNS=$(host 8.8.8.8) 
if [ $? != 0 ]; then 
    printf '%s\n' "Reverse DNS [FAILED]"
else
    printf '%s\n' "Reverse DNS [OK]"
fi

###### nslookup ##########

nslookup_func(){

    nslookup=$(nslookup google.com)

    if [ "$nslookup" = ";; connection timed out; no servers could be reached" ]; then
        printf '%s\n' "nslookup [FAILED]"
    else
        printf '%s\n' "nslookup [OK]"
    fi
}

nslookup_func 
0
28.01.2020, 02:37
  • 1
    ... Я уже попробовал первый подход в CentOS, он всегда возвращает код выхода как 0. Но в RHEL это должно хорошо работать. Для второго подхода существует партия возможных ошибок, см. ссылку h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51B_HTML/MAN / … Так, чтобы я попробовал за альтернативу..... –  Ram 29.08.2013, 17:58
  • 2
    Это - страница справочника nslookup. Я не знаю то, что Ваша альтернатива или к чему Вы обращаетесь со ссылкой. –  Valentin Bajrami 29.08.2013, 18:08
  • 3
    я отсылающий Ваш, если проверка, "если ["$nslookup" =";; соединение приведено к таймауту; никакие серверы не могли быть достигнуты"]"; который проверяет только на две ошибки, но существует партия, которую больше ошибок можно показать....., –  Ram 30.08.2013, 07:42
  • 4
    я отсылающий Ваш, если проверка, "если ["$nslookup" =";; соединение приведено к таймауту; никакие серверы не могли быть достигнуты"]"; который проверяет только на две ошибки, но существует партия, которую больше ошибок можно показать..... –  Ram 30.08.2013, 08:16

Теги

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