Quảng cáo
Chỉnh sửa tệp /etc/hosts bằng bash script như thế nào?
Chủ đề: Ubuntu / Linux / WebserverBài trước|Bài tiếp
Để có thể chỉnh sửa tệp /etc/hosts trên Ubuntu ngoài cách các như chỉnh sửa trực tiếp, qua terminal thì bạn có thể tạo một bash script để làm điều đó. Sau đây là một bash script giúp bạn có thể thêm, xóa, liệt kê các dòng trong tệp hosts.
Đầu tiên tạo 1 tệp tin domain.sh với nội dung như sau:
Ví dụ
#!/bin/bash
# A script to add, remove, and list entries in the hosts file
# Function to add an entry to the hosts file
add_entry() {
# Get user input for IP address and server name
read -p "Enter IP address: " ip_address
read -p "Enter server name: " server_name
# Check if the input is not empty
if [ -z "$ip_address" ] || [ -z "$server_name" ]; then
echo "IP address and server name cannot be empty."
exit 1
fi
# Append the entry to the hosts file
echo "$ip_address $server_name" >> /etc/hosts
echo "Entry added to /etc/hosts: $ip_address $server_name"
}
# Function to remove an entry from the hosts file
remove_entry() {
# Get user input for IP address or server name to remove
read -p "Enter IP address or server name to remove: " entry_to_remove
# Check if the input is not empty
if [ -z "$entry_to_remove" ]; then
echo "Entry cannot be empty."
exit 1
fi
# Check if the entry exists in the hosts file
if grep -q "$entry_to_remove" /etc/hosts; then
# Remove the entry from the hosts file using sed
sed -i.bak -e "/$entry_to_remove/d" /etc/hosts
echo "Entry removed from /etc/hosts: $entry_to_remove"
else
echo "Entry does not exist in /etc/hosts: $entry_to_remove"
fi
}
# Function to list all active entries in the hosts file
list_entries() {
echo "Non-commented entries in /etc/hosts:"
grep -E -v '^\s*#' /etc/hosts
}
# Check if the script is executed with root privileges
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root."
exit 1
fi
# Display menu for user choice
echo "1. Add entry"
echo "2. Remove entry"
echo "3. List entries"
read -p "Enter your choice (1, 2, or 3): " choice
case $choice in
1)
add_entry
;;
2)
remove_entry
;;
3)
list_entries
;;
*)
echo "Invalid choice. Exiting."
exit 1
;;
esac
Để chạy chương trình thì trong Terminal bạn chạy lệnh sau:
sudo sh domain.sh
Câu hỏi liên quan
Dưới đây là một số câu hỏi thường gặp khác liên quan đến chủ đề này:
- Cho Phép www-data Ghi Vào Tệp Mới Trên Ubuntu
- Tùy Chỉnh Xử Lý Trang Lỗi NGINX ?
- Cách sửa OpenServer lỗi ghi file hosts
- Let's Encrypt là gì?
- NGINX là gì?
Unknown Error
Unknown Error: [2] Undefined array key "PREV_PAGE"
File: /home/vzn.vn/public_html/config/vzn.template.php(491) : eval()'d code
Line: 1
File: /home/vzn.vn/public_html/config/vzn.template.php(491) : eval()'d code
Line: 1