Scripts


Сборка полезных самописных скриптов

Несколько полезных ручных и копипастных скриптов, серьезно упрощающих жизнь в определенных ситуациях

test1

test2

test3

 

Автоматический реконнект wifi на macos, прописанный в местный шедуляр

Сам скрипт ~/Documents/wifi_schedule.sh

#!/bin/bash
networksetup -setairportpower en0 off
sleep 2
networksetup -setairportpower en0 on

Меняем на исполняемый - sudo chmod +x ~/Documents/wifi_schedule.sh

Шедуляр - /Library/LaunchDaemons/com.wi_fi.volume.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs>
<plist version="1.0">
<dict>
        <key>Label</key>
        <string>com.wi_fi.volume</string>
        <key>ProgramArguments</key>
        <array>
                <string>bash</string>
                <string>-c</string>
                <string>/Users/admin/Library/scripts/wifi_schedule.sh</string> ## с некоторых путей,например, /Users/admin/Documents/ чтение запрещено
        </array>
        <key>StartCalendarInterval</key>
        <dict>
                <key>Minute</key>
                <integer>35</integer>
                <key>Hour</key>
                <integer>08</integer>
        </dict>
</dict>

launchctl enable user/501/com.wi_fi.volume - разрешаем запуск шедуляра от юзера с uid=501

launchctl load -w /Library/LaunchDaemons/com.wi_fi.volume.plist - загружаем сервис напрямую

echo "show State:/Users/ConsoleUser" | scutil | awk '/kCGSSessionUserIDKey :/ { print $3 }' - чтобы узнать текущий uid

 

 

 

text

pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY KDE_SESSION_VERSION=5 KDE_FULL_SESSION=true dolphin

#!/bin/bash
 
# Файл для записи сгенерированных паролей
PASSWORD_FILE="путь/к/файлу.txt"
 
# Поиск новых имен компьютеров через dyndns
NEW_COMPUTERS=$(nmap -sP --unprivileged 192.168.0.0/24 | grep -E "lab\.home" | awk '{print $5}' | sed 's/.\{9\}$//')
 
# Проверка, есть ли новые компьютеры
if [ -z "$NEW_COMPUTERS" ]; then
  echo "Нет новых компьютеров для обработки."
  exit 0
fi
 
# Проход по списку новых компьютеров и создание пользователей
for COMPUTER in $NEW_COMPUTERS; do
  # Генерация случайного пароля (при необходимости, используйте более сложные методы)
  NEW_USER_PASSWORD=$(openssl rand -base64 12)
 
  # Создание нового пользователя
  sudo samba-tool user add "$COMPUTER" --random-password
 
  # Установка сгенерированного пароля для нового пользователя
  sudo samba-tool user setpassword "$COMPUTER" "$NEW_USER_PASSWORD"
 
  # Запись пароля в файл
  echo "$COMPUTER:$NEW_USER_PASSWORD" >> "$PASSWORD_FILE"
 
  # Дополнительные действия, если необходимо
  # sudo samba-tool user setattributes "$COMPUTER" атрибут=значение
done
 
echo "Обработка завершена. Пароли сохранены в $PASSWORD_FILE."
wget -qO- eth0.me ##внешний
wget -qO- ipinfo.io/ip
 
sudo ifconfig | grep "inet" ##Внутренние

#!/bin/bash
for p in `dpkg -l | grep -E '^[^ii]' | awk '{print $2}'`; do apt-get install --reinstall $p ; done

#!/bin/bash

#Заменяем *.sh на желаемое расширение(например, *.txt)

suffix=BACKUP--`eval date +%Y%m%d-%H%M`
for script in *.sh; do
        newname="$script.$suffix";
        echo "copying $script to $newname"
        cp $script $newname
done

sed -i '15,$ s/^/  /' ~/.ansible/easyrsa_vars.yml
#добавляет 2 пробела в начале каждой строки с 15 строки и до конца файла

sed -i '13,$ s/^/\t/' ./python3.9.dockerfile
#Добавляет табуляцию в начало каждой строки с 13 строки
sed -i '13,$ s/^\t//' ./python3.9.dockerfile
#Удаляет табуляцию с начала каждой строки с 13 строки
sed -i '/^[[:graph:]]/s/^/\t/g' ./python3.9.dockerfile
#Добавляет табуляцию в начало всех строк, которые не начинаются с пробела или
#табуляции

grep -v "^#" ./.ansible/ansible.cfg | grep -v "^$" | sed 's/^\s*//; s/^;//'
#Удаляет комментарии,пояснения и пустые строки из конфига ansible

 

Подробнее про sed можно почитать тут

sudo sh -c "sync; echo 1 > /proc/sys/vm/drop_caches"