【bash】开机启动网卡、ssh服务和防火墙的脚本

前段时间换了archlinux操作系统,由于安装时,忘记设置有线网卡以及ssh,所以每次登录都需要手动敲一遍启用网卡和ssh的命令。

敲了几次,感觉很烦。于是写了一个脚本,顺带实现打开ufw防火墙的功能。

 

为了省去每次输入密码的烦恼,我将脚本添加进入.bashrc中,然后将sudo密码放进了自己的脚本中,一开机就可以开启一系列服务了。将明文密码放置在文件中,虽然不太安全,不过也无所谓了,反正是个人笔记本,没有什么重要资料,即使黑客入侵也不怕。

 

代码:

#!/bin/bash

#

# initial the network

# writer: house

# 2013/9/9



# find the eth port

LANID=

LANID=`ifconfig -a | awk -F':'  'NR==1 {print $1}'`



# find the ip address'

IPADDER=

IPADDER=`ifconfig -a |awk 'NR==2 {print $0}' | grep 'inet' | grep '192.168.*.*' | awk -F' ' '{print $2}'`
IPv4EXIST=`ifconfig -a |awk 'NR==2 {print $0}' | grep 'inet' | grep '192.168.*.*'`
if [ -z "$IPADDER" ] then

sudo -S ifconfig "$LANID" up <<EOF mypasswd EOF
if [ -z "$IPv4EXIST" ];then
    echo "ipv4 doesn't exist, please check it."
    exit 3
else
     echo "mypasswd" |sudo dhcpcd $LANID echo "mypasswd" | sudo systemctl start sshd.service echo "mypasswd" | sudo ufw enable
fi
else
{
echo " having init the wire..........." echo "" exit 1
} 2>/dev/null
fi exit 0 ~

先将这个脚本保存为wireInit.sh,然后打开.bashrc文件,在最后一行加入" bash wireInit.sh ",最初我使用" . wireInit.sh",进入一个开机死循环,看了一下脚本,是exit 1造成的,懒得改这个了,所以选择了用bash wireInit.sh。

 

局限:

  1.暂时只能用于有线网络的网口加载,而且判断wire是否开启的方式有些粗陋;

  2.明文密码放在文件中;

 

你可能感兴趣的:(bash)