Попался с этим, а с ошибками зависимостей при попытке запустить «apt-get -f install», но я нашел другой выход:
:~# aptitude install mysql-server
The following packages will be upgraded:
mysql-server
1 packages upgraded, 0 newly installed, 0 to remove and 323 not upgraded.
Need to get 0 B/11.5 kB of archives. After unpacking 1,024 B will be used.
The following packages have unmet dependencies:
mysql-server-5.5 : Depends: mysql-server-core-5.5 (= 5.5.34-0ubuntu0.12.04.1) but 5.5.37-0ubuntu0.12.10.1 is installed.
The following actions will resolve these dependencies:
Remove the following packages:
1) mysql-server
2) mysql-server-5.5
Accept this solution? [Y/n/q/?] Y
The following packages will be REMOVED:
libdbd-mysql-perl{u} libdbi-perl{u} libmysqlclient18{u}
libnet-daemon-perl{u} libplrpc-perl{u} libterm-readkey-perl{u}
mysql-client-5.5{u} mysql-client-core-5.5{u} mysql-common{u}
mysql-server{a} mysql-server-5.5{a}
0 packages upgraded, 0 newly installed, 11 to remove and 317 not upgraded.
Need to get 0 B of archives. After unpacking 76.9 MB will be freed.
Do you want to continue? [Y/n/?] y
(Reading database ... 215864 files and directories currently installed.)
Removing mysql-server ...
Removing mysql-server-5.5 ...
mysql stop/waiting
Removing mysql-client-5.5 ...
Removing libdbd-mysql-perl ...
Removing libdbi-perl ...
Removing libmysqlclient18:amd64 ...
Removing libplrpc-perl ...
Removing libnet-daemon-perl ...
Removing libterm-readkey-perl ...
Removing mysql-client-core-5.5 ...
Removing mysql-common ...
Processing triggers for man-db ...
Processing triggers for ureadahead ...
ureadahead will be reprofiled on next reboot
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place
Current status: 0 broken [-1], 317 updates [-7].
:~# apt-get install mysql-server
И после этого установка (например, потенциальное обновление) прошло чисто.
Надеюсь, что это помогает другим.
Если все компьютеры в вашей сети - Ubuntu или любой другой дистрибутив, который использует avahi-daemon (DNS-SD), вы можете получить подробный список из них (с именем хоста и IP-адресом), выполнив: [!d0 ]
avahi-browse -rt _workstation._tcp
Если вы хотите узнать все IP-адреса, используемые в вашей сети, вы можете использовать arp-scan:
sudo arp-scan 192.168.1.0/24
Поскольку он по умолчанию не установлен, вы будете иметь установить его с помощью sudo apt-get install arp-scan. arp-scan отправляет ARP-пакеты в локальную сеть и отображает полученные ответы, поэтому он показывает даже брандмауэр-хосты (блокирующие трафик на основе IP-пакетов).
Netdiscover может быть вашим ответом.
Для установки через терминал:
sudo apt-get install netdiscover
пример использования:
sudo netdiscover -r 192.168.1.0/24 -i wlan0
IP с MAC Addreses будет показать на своем терминале. См. Скриншот
надеюсь, что вы
Примечание для читателя: оригинальный ответ был опубликован некоторое время назад и в то время, когда я только изучал сценарии оболочки. См. Обновленную версию ниже для нового и улучшенного скрипта, который работает намного быстрее.
nmap был бы моим # 1 выбором, но что, если у вас нет Это ? Метод DIY будет иметь скрипт ping, который будет проходить через каждый возможный IP-адрес в сети вручную. То, что у нас есть, - это всего лишь цикл while, где мы устанавливаем последний номер в адресе, делаем тихий одиночный пинг по адресу, проверяем, была ли команда успешной или нет (и если она преуспела, то узел явно вверх) и заявление. Быстро и грязно, мне потребовалось около 10 минут, чтобы написать его, но время выполнения может быть немного медленным.
#!/bin/sh
# set -x
NUM=1
while [ $NUM -lt 256 ];do
ping -q -c 1 192.168.0.$NUM > /dev/null
RESULT=$(echo $?)
if [ $RESULT -eq 0 ]; then
printf 192.168.0.$NUM"\n"
fi
NUM=$(expr $NUM + 1)
done
Я изначально опубликовал этот ответ в августе от 2015 года. С тех пор я узнал немного больше о сценариях оболочки, и однажды я увидел этот скрипт, я подумал, что было бы неплохо вернуться к этому ответу, чтобы добавить несколько улучшений. Вот несколько идей:
Скрипт явно медленный, и ping ждет ответа от хоста. По умолчанию ping для двух RTT, которые могут различаться в зависимости от того, насколько перегружена ваша сеть, и насколько я понимаю протокол TCP удваивает время ожидания каждый раз (по крайней мере, в соответствии с этим). Поэтому мы могли бы заставить ping тайм-аут с флагом -w 1. Поскольку у нас 256 адресов, и мы принимаем 1 секунду для каждого адреса, сценарий займет около 256/60 = 4,27 минуты. Выполнение команды, а затем захват ее статуса выхода с помощью $? не было действительно необходимым. [F13] может работать с командами напрямую. Другими словами, этого достаточно:if ping -w 1 -q -c 1 192.168.0.$NUM > /dev/null ;
then
<some other code here>
fi
Команда printf может быть переписана так: printf "IP %s is up\n" 192.168.0."$NUM"
Это больше похоже на стилистическое изменение, но оно согласуется с тем, как printf работает и выглядит во многом других языков, с цитированием переменной "$NUM". Цитирование здесь не обязательно - поскольку мы имеем дело только с числами, нам не нужно ожидать разбиения слов из-за наличия пробелов в переменной. Гораздо лучшее улучшение производительности может быть достигнуто, если мы создадим несколько фоновых процессов. Скрипт, приведенный ниже, делает именно это. Я положил ping и printf в функцию, pingf (да, банальное имя, я знаю). Теперь есть еще одна функция main, которая выполняет цикл и вызов pingf. #!/bin/sh
# Uncomment for debugging
#set -x
pingf(){
if ping -w 2 -q -c 1 192.168.0."$1" > /dev/null ;
then
printf "IP %s is up\n" 192.168.0."$1"
fi
}
main(){
NUM=1
while [ $NUM -lt 255 ];do
pingf "$NUM" &
NUM=$(expr "$NUM" + 1)
done
wait
}
main
Насколько лучше это работает? Неплохо, на самом деле, занимает несколько секунд.
$ time ./ping_script.sh
IP 192.168.0.1 is up
IP 192.168.0.101 is up
IP 192.168.0.27 is up
IP 192.168.0.29 is up
0m02.50s real 0m00.01s user 0m00.12s system
fping - отличный инструмент для сканирования нескольких хостов в сети через ICMP. Если это не установлено, вы можете установить его:
sudo apt-get install fping
fping отправляет ICMP ECHO_REQUEST пакеты и помещает хост как Up, если он получает ECHO_RESPONSE с хоста.
Например , для сканирования хостов подсети 192.168.1.0/24 вы можете выполнить:
fping -g 192.168.1.0/24
Для определенного количества хостов, например от 192.168.1.15 до 192.168.1.140:
fping -g 192.168.1.15 192.168.1.140
fping очень настраивается, например. сколько пакетов будет отправлено, время ожидания ответа, формат вывода и т. д.
Проверьте man fping, чтобы получить больше информации.