Linux — WiFi Starting Script

в 21:38, , рубрики: bash, linux, wifi, метки: , ,

Недавно колом стала задача сделать автоматическое подключение вафли к точке доступа. Алгоритм шифрования WPA. Недолго думая сел гуглить минимум инфы для написания башскрипта. А теперь по порядку.

Запуск вафли

Как всем хорошо известно, подключение к сети с шифрованием пароля WPA в линуксе происходит посредством программы wpa_supplicant. Она использует конфиг, который генерируется программой wpa_passphrase и подключает комп к сети, объявленной в этом конфиге. Итак, задачи, которые должен выполнять скрипт:

  • Подключаться к сети
  • Проверять наличие конфига
  • Проверять, подключена ли уже вафля

Сам скрипт

Сразу прошу сильно не ругать за возможную кривизну конструкции, в баше я новичок:

StartWiFi

#!/bin/bash

CONFIG=/usr/share/wifi_config

if ps ax | grep -v grep | grep wpa_supplicant > /dev/null
then
	echo -e "
E[1;32m*********************************************************************************
*										*
*				WiFi already started				*
*										*
*********************************************************************************E[0m
		";
else
	if [ -e $CONFIG ]
	then
		echo -e "
E[1;33m*********************************************************************************
*										*
*				   WiFi starting...				*
*										*
*********************************************************************************E[0m
			"
		wpa_supplicant -Dwext -iwlan0 -c$CONFIG & > /dev/null
		sleep 3
		dhcpcd wlan0 >> /dev/null
		echo -e "
E[1;32m*********************************************************************************
*										*
*				WiFi starting success!				*
*										*
*********************************************************************************E[0m
			";
	else
		echo -e "
E[1;31m*********************************************************************************
*				Config file not exist, use:			*
*    	E[01;32mwpa_passphrase SSID LOGIN PASSWORD >> /usr/share/wifi_configE[1;31m		*
*				and start this script again.			*
*********************************************************************************E[0m
			";
	fi
fi

Я использовал цветовые эскейп-последовательности для улучшения читабельности выводимого текста.
Сделаем скрипт исполняемым при помощи

chmod +x /wifi

и слинкуем его для возможности запускать его без указания папки

ln -s /wifi /usr/bin/startwifi

Итак, скрипт готов, пора прописать его в автозапуск.

Автозапуск

Для автозапуска я использовал файл /etc/rc.local, в который просто нужно добавить

startwifi

И начиная с этого момента вафля будет автоматически запускаться при старте системы (конечно же скрипт можно запускать и ручками)

На этом все, благодарю за проявленное внимание, с радостью прийму всю критику и исправления =)

Автор: xxxTy3uKxxx

* - обязательные к заполнению поля