<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dw="https://www.dreamwidth.org">
  <id>tag:dreamwidth.org,2017-02-11:2798292</id>
  <title>eddy_em</title>
  <subtitle>eddy_em</subtitle>
  <author>
    <name>eddy_em</name>
  </author>
  <link rel="alternate" type="text/html" href="https://eddy-em.dreamwidth.org/"/>
  <link rel="self" type="text/xml" href="https://eddy-em.dreamwidth.org/data/atom"/>
  <updated>2023-03-23T07:01:40Z</updated>
  <dw:journal username="eddy_em" type="personal"/>
  <entry>
    <id>tag:dreamwidth.org,2017-02-11:2798292:359388</id>
    <link rel="alternate" type="text/html" href="https://eddy-em.dreamwidth.org/359388.html"/>
    <link rel="self" type="text/xml" href="https://eddy-em.dreamwidth.org/data/atom/?itemid=359388"/>
    <title>Скрипт для пингования подсети</title>
    <published>2023-03-23T07:01:40Z</published>
    <updated>2023-03-23T07:01:40Z</updated>
    <category term="bash"/>
    <category term="всячина"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">Вчера хотел поснимать с ИК-датчиков картинки (облачности не было, но местами была на небе дымка), однако, забыл IP-адрес одноплатника! Вот, утром накидал такой скрипт, чтобы всю нашу подсетку проверить:&lt;br /&gt;&lt;code lang="bash"&gt;&lt;pre style="border-left: 4px solid; border-top: 1px dashed; border-bottom: 1px dashed; max-height: 300px; overflow: auto; padding: 5px" title="Code block"&gt;
#!/bin/bash

trap "echo Exited!; exit;" SIGINT SIGTERM

if [ $# -ne 1 ]; then
	echo "Usage: $0 IP_base (like $0 192.168.70) - ping all IP in 192.168.70.1 .. 192.168.70.254" &amp;gt;&amp;1
	exit 1
fi

for x in $(seq 1 254); do
	IP="$1.$x"
	HOST=$(host $IP)
	if [ $? -eq 0 ]; then
		HOST=$(echo $HOST| awk '{print $5}')
	else
		HOST="-"
	fi
	ping -c 1 -W1 $IP &amp;gt;/dev/null 2&amp;gt;/dev/null &amp;&amp; echo "$IP, $HOST"
done
&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Советую обратить внимание на строчку &lt;tt&gt;trap ...&lt;/tt&gt;: она позвляет отслеживать прерывание цикла по Ctrl+C и завершать при этом весь скрипт, а не только текущую команду в цикле.&lt;br /&gt;Когда-то я писал нечто подобное (но уже с другой целью: пинговать выключенные компьютеры), чтобы динамически менять (где-то раз в полчаса) IP-адрес компьютера (заодно можно еще и по данным arp составить табличку и MAC менять тоже на целевой). А в гостинице в Ереване был у меня скриптик, который к wifi переподключался в случае снижения скорости (там за трафик рубили, а я торренты качал ☺) с новым MAC-адресом.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=eddy_em&amp;ditemid=359388" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2017-02-11:2798292:336872</id>
    <link rel="alternate" type="text/html" href="https://eddy-em.dreamwidth.org/336872.html"/>
    <link rel="self" type="text/xml" href="https://eddy-em.dreamwidth.org/data/atom/?itemid=336872"/>
    <title>Простой скрипт для массового создания пользователей</title>
    <published>2022-06-29T08:49:52Z</published>
    <updated>2022-06-29T08:49:52Z</updated>
    <category term="всячина"/>
    <category term="bash"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">Понадобилось мне завести студентов на нашем сервере, ну, как говорится, "лучше день потерять, зато потом за полчаса долететь". Написал скриптик:&lt;br /&gt;&lt;code lang="bash"&gt;&lt;pre style="border-left: 4px solid; border-top: 1px dashed; border-bottom: 1px dashed; max-height: 300px; overflow: auto; padding: 5px" title="Code block"&gt;
&amp;#35;!/bin/bash

if [ $&amp;#35; -ne 1 ]; then
    echo -e "Usage: $0 file\n\tEvery line of file is login password Name1 Name2 ...\n\tUsers will be created in /Students/login"
    exit 1
fi

while read log pass nm; do
    echo "log=${log}, pass=${pass}, nm=${nm}"
    useradd -b /Students -g students -m -N ${log} -c "${nm}" --badname
    echo "${log}:${pass}" | chpasswd 
done &amp;lt; $1
&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Ну и скрипт, чтобы всю толпу разом удалить:&lt;br /&gt;&lt;code lang="bash"&gt;&lt;pre style="border-left: 4px solid; border-top: 1px dashed; border-bottom: 1px dashed; max-height: 300px; overflow: auto; padding: 5px" title="Code block"&gt;
&amp;#35;!/bin/bash

if [ $&amp;#35; -ne 1 ]; then
    echo -e "Usage: $0 file\n\tEvery line of file is login password Name1 Name2 ...\n\tUsers will be DELETED"
    exit 1
fi

while read log pass nm; do
    echo "Delete ${log}"
    userdel -r -f ${log}
done &amp;lt; $1
&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Файл должен содержать минимум 2 столбца: логин и пароль. Дальше можно еще ФИО в транскрипции запихнуть или еще что — всë остальное пойдет в поле "comment".&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=eddy_em&amp;ditemid=336872" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2017-02-11:2798292:264050</id>
    <link rel="alternate" type="text/html" href="https://eddy-em.dreamwidth.org/264050.html"/>
    <link rel="self" type="text/xml" href="https://eddy-em.dreamwidth.org/data/atom/?itemid=264050"/>
    <title>Велосипедостроение</title>
    <published>2020-08-25T22:28:39Z</published>
    <updated>2020-08-25T22:28:39Z</updated>
    <category term="bash"/>
    <category term="рукожопие"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">Вчера наблюдал на полуметровом телескопе. Теоретически, в случае плохой погоды купол сам должен закрыться, но погода вполне. И, чтобы не ждать до утра, поставил себе бесконечный ряд экспозиций и лег спать, включив будильник на полпятого утра. Просыпаюсь, а почти сотня кадров - мимо! Монтировка самостоятельно не делает перекладку после пересечения меридиана. &lt;br /&gt;Сегодня не хочется такое повторить. ОК, наши руки не для скуки. Пишем баш-скрипт&lt;br /&gt;&lt;span class="cut-wrapper"&gt;&lt;span style="display: none;" id="span-cuttag___1" class="cuttag"&gt;&lt;/span&gt;&lt;b class="cut-open"&gt;(&amp;nbsp;&lt;/b&gt;&lt;b class="cut-text"&gt;&lt;a href="https://eddy-em.dreamwidth.org/264050.html#cutid1"&gt;Больше рукожопия!&lt;/a&gt;&lt;/b&gt;&lt;b class="cut-close"&gt;&amp;nbsp;)&lt;/b&gt;&lt;/span&gt;&lt;div style="display: none;" id="div-cuttag___1" aria-live="assertive"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=eddy_em&amp;ditemid=264050" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
</feed>
