- Dịch vụ Mạng
- Khởi động dịch vụ NetworkManager
Mô tả: Kịch bản này được sử dụng để tắt dịch vụ NetworkManager và khởi động lại dịch vụ network để tránh xung đột dịch vụ gây ra việc không thể áp dụng cấu hình IP
#!/bin/bash
# Kiểm tra trạng thái dịch vụ NetworkManager
check_networkmanager_status() {
local service_status=$(systemctl is-active NetworkManager)
return $service_status
}
# Dừng dịch vụ NetworkManager
stop_networkmanager() {
if systemctl stop NetworkManager; then
echo "Đã dừng thành công dịch vụ NetworkManager"
return 0
else
echo "Không thể dừng dịch vụ NetworkManager"
return 1
fi
}
# Khởi động lại dịch vụ mạng
restart_network_service() {
if systemctl restart network; then
echo "Khởi động lại dịch vụ mạng thành công"
return 0
else
echo "Không thể khởi động lại dịch vụ mạng"
return 1
fi
}
# Hàm chính
main() {
check_networkmanager_status
if [ $? -eq "active" ]; then
stop_networkmanager
restart_network_service
else
restart_network_service
fi
}
# Thực thi hàm chính
main
- Cấu hình Card mạng
- Mô tả: Kịch bản này được sử dụng để đơn giản hóa quá trình cấu hình IP
#!/bin/bash
# Hiển thị thông báo màu xanh
show_green_message() {
echo -e "\033[32m$1\033[0m"
}
# Kiểm tra tệp cấu hình
check_config_file() {
config="/etc/sysconfig/network-scripts/ifcfg-eth0"
if [ ! -f "$config" ]; then
show_green_message "Tệp cấu hình không tồn tại, đang tạo mới..."
touch "$config"
fi
}
# Kiểm tra card mạng
check_network_interface() {
show_green_message "Đang kiểm tra card mạng..."
if ! ip link show eth0 > /dev/null 2>&1; then
echo "Card mạng eth0 không tồn tại"
exit 1
fi
}
# Cấu hình cơ bản cho card mạng
basic_network_config() {
echo "TYPE=Ethernet" >> "$config"
sed -i "/DNS1/ d" "$config"
}
# Cấu hình địa chỉ IP
configure_ip_address() {
read -p "Nhập địa chỉ IP: " ip_address
read -p "Nhập mặt nạ mạng: " netmask
echo "IPADDR=$ip_address" >> "$config"
echo "NETMASK=$netmask" >> "$config"
configure_gateway_or_dns
}
# Cấu hình cổng chuyển tiếp hoặc DNS
configure_gateway_or_dns() {
echo "1. Cấu hình cổng chuyển tiếp (Gateway)"
echo "2. Cấu hình DNS"
echo "3. Bỏ qua"
read -p "Lựa chọn của bạn (1-3): " choice
case $choice in
1)
read -p "Nhập địa chỉ Gateway: " gateway
echo "GATEWAY=$gateway" >> "$config"
configure_dns
;;
2)
read -p "Nhập địa chỉ DNS: " dns
echo "DNS1=$dns" >> "$config"
;;
3)
;;
*)
echo "Lựa chọn không hợp lệ"
;;
esac
}
# Cấu hình DNS
configure_dns() {
read -p "Bạn có muốn cấu hình DNS không? (y/n): " dns_choice
if [ "$dns_choice" = "y" ]; then
read -p "Nhập địa chỉ DNS: " dns
echo "DNS1=$dns" >> "$config"
fi
}
# Khởi động lại dịch vụ mạng
restart_network_service() {
if systemctl restart network; then
show_green_message "Khởi động lại dịch vụ mạng thành công"
else
echo "Không thể khởi động lại dịch vụ mạng"
exit 1
fi
}
# Kiểm tra và xử lý dịch vụ NetworkManager
handle_networkmanager() {
local nm_status=$(systemctl is-active NetworkManager)
if [ "$nm_status" != "inactive" ]; then
show_green_message "Dịch vụ NetworkManager đang chạy, đang tắt và khởi động lại network..."
if systemctl stop NetworkManager; then
restart_network_service
show_green_message "Đã tắt thành công NetworkManager và khởi động lại network"
else
echo -e "\033[31mKhông thể tắt dịch vụ NetworkManager\033[0m"
exit 1
fi
else
show_green_message "NetworkManager đã bị tắt, đang khởi động lại network..."
restart_network_service
fi
}
# Hàm chính
main() {
show_green_message "## Kịch bản này được sử dụng để cấu hình IP cho card mạng... ##"
echo ""
check_config_file
check_network_interface
basic_network_config
configure_ip_address
handle_networkmanager
}
# Thực thi hàm chính
main