Использовать html парсер не так уж и сложно:
perl -MHTML::Parser -E '
$handler = sub {say "<".shift.">"};
HTML::Parser->new(start_h => [$handler,"tag"], end_h => [$handler,"tag"])
->parse_file(shift @ARGV)
' file.html
<html>
<head>
<title>
</title>
</head>
<body>
</body>
</html>
Наиболее близким к многопоточному процессу является &
, который выполняет команды в фоновом режиме.
Таким образом, чтобы использовать эту команду, вы бы сделали что-то вроде:
cp file location &
-121--26661- Если вы использовали iptables -v -L
вместо iptables-save
вы бы заметили, что это количество пакетов: байт Мой собственный пример:
➜ ~ sudo iptables-save
# Generated by iptables-save v1.4.21 on Fri Oct 31 11:08:58 2014
*filter
:INPUT ACCEPT [269:87691]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [234:37262]
COMMIT
# Completed on Fri Oct 31 11:08:58 2014
➜ ~ sudo iptables -v -L
Chain INPUT (policy ACCEPT 296 packets, 95092 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 252 packets, 39353 bytes)
pkts bytes target prot opt in out source destination
Число отбито, потому что я активно использую соединение, но вы можете видеть, как близко каждое число каждой цепочки находятся в X пакетов, Y байт
к тому, который генерируется iptables-save [X: Y]
. Вот что означают эти цифры.
Посмотрите на libpam-script . Он позволяет выполнять сценарии во время авторизации, изменения паролей и сеансов.
Для удовлетворения потребностей можно создать конфигурацию PAM (в /etc/pam.d/< что угодно >
), которая обеспечивает выполнение этого модуля непосредственно перед pam _ deny
только в том случае, если обычная последовательность модулей отклоняет вход в систему.