可以在每次開啟關閉網路的時候執行shell指令碼 scritps.sh
/etc/network/inte***ces 檔案為網路配置檔案
```iface lo inet loopback
auto eth0
iface eth0 inet dhcp
dns-nameservers 223.5.5.5 223.6.6.6
dns-nameservers 116.116.116.116
auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.111.1
dns-nameservers 114.114.114.114 116.116.116.116
pre-up iptables-restore < /etc/iptables
up bash -e /home/pi/set_ip_and_gw.sh
down bash -e /home/pi/test_down.sh
post-down bash -e /home/pi/test_post_down.sh
```* 這裡的 pre-up ,up,down,post-down為網絡卡啟動的鉤子
* pre-up 對應的為 網路啟動之前執行指令碼
* up 對應網路啟動之後執行指令碼
* down 網路關閉之間
* post-down 網路關閉之後
在這4個位置可以新增指令碼程式可以正常執行,但是在/etc/network目錄下面對應的
if-up.d if-down.d if-pre-up.d if-post-down.d 4個目錄中新增指令碼卻無法執行
可以通過systemd來設定開機啟動服務,來對每次開機時再網路開啟之後執行一次指令碼命令
debian 和ubuntu 以及centos7 都預設安裝了systemd 來管理服務
在 /usr/lib/systemd/system 設定需要開機啟動的服務
vim /usr/lib/systemd/system/do_something.service
[unit]
description=test networking
#before=network.target
after=networking.service
# 網路啟動之後
[service]
type=oneshot # 執行一次
execstart=/bin/bash -e /home/pi/set_ip_and_gw.sh
killsignal=sigint
[install]
wantedby=multi-user.target
#多使用者模式
systemctl enable do_something
這樣每次開機都會在網路連線之後執行指定的指令碼
Linux執行指令碼
首先指令碼需要有執行許可權 chmod u x file.sh 執行指令碼有三種方法 1.file.sh 特點 開啟bash子程序來執行,也就是開啟額外的程序來進行,不影響原程序的變數 配置等 2.bash file.sh 特點 和.file.sh相同 3.source file.sh 或者 fil...
linux執行指令碼
linux下開機以某乙個使用者執行指令碼 etc rc.local新增想要被執行的命令即可 預設是以root使用者執行 2 以期望的使用者執行命令 su c ls l myfile.txt guowei 解釋 其中需要被執行的命令是 ls l myfile.txt 期望的使用者的 guowei,表示...
Linux中執行指令碼
bash shell 指令碼的方法有多種,現在作個小結。假設我們編寫好的shell指令碼的檔名為hello.sh,檔案位置在 data shell目錄中並已有執行許可權。方法一 切換到shell指令碼所在的目錄 此時,稱為工作目錄 執行shell指令碼 複製 如下 cd data shell hel...