Tôi sẽ thử một tập lệnh powershell.
tuyến đường
hiển thị các bảng định tuyến hiện tại dưới dạng bảng có các cột sau:
Đích,Cổng,Genmask,Cờ,Số liệu,Tham chiếu,Sử dụng,Iface
Vì vậy, tôi đã lưu đầu ra đó vào một tệp và sao chép nó vào máy chủ mới. Tôi đã chuyển đổi đầu ra thô thành tệp csv bằng cách xóa dòng đầu tiên và thay thế khoảng trắng bằng dấu phẩy. Tôi cũng đã thay thế tên thiết bị bằng tên phù hợp trên hệ thống mới. Vì vậy, bảng lộ trình thử nghiệm của tôi có thể trông như thế này:
Đích,Cổng,Genmask,Cờ,Số liệu,Tham khảo,Sử dụng,Iface
mặc định,cổng,0.0.0.0,UG,0,0,0,enp5s0
mặc định,toblerone.mydomain.org,0.0.0.0,UG,100,0,0,eno1
192.168.0.0,0.0.0.0,255.255.255.0,U,100,0,0,eno1
192.168.1.0,0.0.0.0,255.255.255.0,U,0,0,0,enp5s0
192.168.1.0,cổng,255.255.255.0,UG,0,0,0,enp5s0
Các tuyến đường
lệnh có thể tạo ra các lỗi không mong muốn khi tuyến đường đã tồn tại. Tôi cũng không muốn các lệnh được tạo chạy trực tiếp. Vì vậy, tập lệnh PowerShell của tôi trông như thế này:
#!/usr/bin/env pwsh
Set-StrictMode -Phiên bản mới nhất
$ErrorActionPreference = "Dừng"
$PSDefaultParameterValues['Set-*:ErrorAction'] = "Dừng"
$routeDataCSV = Nhập-CSV "./route_data.csv"
# Chỉ nên xóa một tuyến đường một lần cho mỗi lần chạy.
$routeDeleted = @{}
foreach ($routeIn trong $routeDataCSV) {
if (!$routeDeleted[$routeIn.Destination] -or (!($routeDeleted[$routeIn.Destination] -like "true"))) {
Đầu ra ghi "tuyến đường del -net $($routeIn.Destination)"
$routeDeleted[$routeIn.Destination] = "true"
}
Đầu ra ghi "tuyến đường thêm -net $($routeIn.Destination) gw $($routeIn.Gateway) netmask $($routeIn.Genmask) số liệu $($routeIn.Metric) dev $($routeIn.Iface)"
}
Các lệnh được tạo sau đó là:
tuyến đường del -net mặc định
tuyến đường thêm -net mặc định gw gateway netmask 0.0.0.0 số liệu 0 dev enp5s0
tuyến đường thêm -net mặc định gw toblerone.mydomain.org netmask 0.0.0.0 số liệu 100 dev eno1
định tuyến del -net 192.168.0.0
tuyến đường thêm -net 192.168.0.0 gw 0.0.0.0 netmask 255.255.255.0 số liệu 100 dev eno1
định tuyến del -net 192.168.1.0
tuyến đường thêm -net 192.168.1.0 gw 0.0.0.0 netmask 255.255.255.0 số liệu 0 dev enp5s0
tuyến thêm -net 192.168.1.0 gw cổng netmask 255.255.255.0 số liệu 0 dev enp5s0