Có thể dừng lập trình và khởi động dịch vụ bản đồ ArcGIS Server bằng Python không?
.ags
tệp thành mã thông báo. Bạn có thể thử kết nối với một chứng chỉ (tệp PEM), mặc dù điều này đòi hỏi nhiều hơn HTTP vanilla đơn giản.
Có thể dừng lập trình và khởi động dịch vụ bản đồ ArcGIS Server bằng Python không?
.ags
tệp thành mã thông báo. Bạn có thể thử kết nối với một chứng chỉ (tệp PEM), mặc dù điều này đòi hỏi nhiều hơn HTTP vanilla đơn giản.
Câu trả lời:
Tại ArcGIS 10.0, đối với các dịch vụ riêng lẻ, chẳng hạn như bạn có thể sử dụng dòng lệnh để duy trì ArcIMS, có một công cụ dòng lệnh bạn có thể tải xuống từ Thư viện mã ( AGSSOM ) cung cấp cho bạn lõi của các khu vực chính nhưng không có dịch vụ cụ thể Kiểm soát mức mà bạn có thể sử dụng tại thời điểm này để Bắt đầu / Dừng / Làm mới / Thêm / Xóa dịch vụ AGS.
Có trên idea.arcgis.com một số địa điểm có yêu cầu cải thiện kiểm soát dịch vụ từ một vị trí tự động hơn.
Đối với những người đang sử dụng ArcGIS 10.0 và muốn sử dụng AGSSOM theo khuyến nghị của DE Wright, tôi đã kết hợp các mã sau đây. Điều này sẽ dừng tất cả các dịch vụ cho phép bạn thực hiện các tác vụ cơ sở dữ liệu địa lý cần thiết và sau đó khởi động lại các dịch vụ đang chạy trước đó.
import os, subprocess
#Get list of currently running map services
stream = os.popen('D:\GIS\Admin\AGSSOMv10.0\AGSSOM.exe -list')
mapservices = stream.readlines()
lstStarted = []
for item in mapservices:
itemSplit = item.split(',')
if len(itemSplit) > 1:
if itemSplit[1].find("Started.") > -1:
lstStarted.append(itemSplit[0])
#Shutdown all map services
subprocess.call(['D:\GIS\Admin\AGSSOMv10.0\AGSSOM.exe', '-x', '*all*'])
##...Perfom geodatabase tasks here
#Restart previously running map services
for mapservice in lstStarted:
subprocess.call(['D:\GIS\Admin\AGSSOMv10.0\AGSSOM.exe', '-s', mapservice])
Kể từ ArcGIS Server 10.3, một số tiện ích dòng lệnh dựa trên Python đi kèm với máy chủ ArcGIS.
Mỗi tài liệu của esri chúng thường được cài đặt ở đây:
C:\Program Files\ArcGIS\Server\tools\admin
Các quản lý tiện ích dịch vụ là rất tốt để bắt đầu, dừng lại hoặc xóa các dịch vụ:
python manageservice.py -u admin -p admin -s http://gisserver.domain.com:6080 -n Beirut/Parcels -o start
Cũng giống như những gì Jeff Berry đã đăng trong câu trả lời của mình, tôi đã viết một chức năng nhỏ sẽ quản lý các dịch vụ bản đồ ArcGIS Server 10.0 bằng các công cụ AGSSOM.
Trong trường hợp của tôi, tôi gọi các dịch vụ riêng lẻ theo tên, dừng và bắt đầu từng dịch vụ một.
import subprocess
def manageMapServices(command, svc, svcType):
PathToAGSSOM = r"C:\Windows\AGSSOMUtils\AGSSOM"
server = "AGSSOM"
p = subprocess.Popen(PathToAGSSOM + " " + server + " " + command + " " + svc + " " + svcType)
p.wait()
Sau đó, bạn có thể gọi một dịch vụ theo tên bằng cách sử dụng -x để dừng và -s để bắt đầu:
manageMapServices("-s", "Folder/Service", "MapServer")
Đối với ArcGIS 10.7 và một số phiên bản trước đó, một tập lệnh python hoàn chỉnh để dừng, bắt đầu, xóa và một loạt các thứ khác có thể được tìm thấy ở đây: http://www.arcgis.com/home/item.html?id= 12dde73e0e784e47818162b4d41ee340 (bên trong này cũng có .exe nếu bạn thực sự cần một bản thực thi đầy đủ)
Hoặc đi sâu vào trợ giúp và đọc về nhiều tùy chọn (ngoài dòng lệnh hộp, python api, đoạn mã) tại đây: https://enterprise.arcgis.com/en/server/latest/ad Manageer / linux / scripting -arcgis -Server-hành chính.html
Tuy nhiên, tất cả những điểm này được bao gồm dưới dạng các câu trả lời khác trong câu hỏi mà bạn tham chiếu. AGSSOM là một tiện ích .net được viết cho Server 10.0 trở lên. Có một phiên bản 10.1 và mới hơn được sản xuất, nhưng nó không bao giờ trở nên phổ biến vì bạn không cần mã c # / vb nặng để giao tiếp với máy chủ. Máy chủ 10.1+ được phát hành với API REST có cấu trúc tốt, cho phép các ngôn ngữ cấp cao, chẳng hạn như Python, và do đó, đối tượng rộng hơn cho tập lệnh và quản trị nó mà không cần tiện ích agssom.exe nặng .
Tại ArcGIS for Server 10.1+, bạn có thể sử dụng Bộ công cụ quản trị máy chủ ArcGIS - 10.1+
Từ mô tả (bashing là của tôi):
Bộ công cụ quản trị máy chủ ArcGIS cung cấp cho bạn các công cụ và tập lệnh để giúp bạn quản trị ArcGIS Server của mình. Các công cụ này được viết bằng Python và kết nối với Quản trị viên REST của Máy chủ ArcGIS cho phép bạn nhanh chóng và dễ dàng thực hiện một số chức năng quản trị phổ biến, bao gồm: - Mục danh sách
- Dừng, bắt đầu hoặc xóa một dịch vụ
- Đổi tên một dịch vụ
- Sửa đổi cấp độ nhật ký và xóa nhật ký cũ
- Tải lên và đăng ký SOE
- Tạo một featureclass từ các vị trí mà dịch vụ bản đồ đã được xem tại (bằng cách kiểm tra nhật ký)
- Định nghĩa dịch vụ xuất bản (.SD)
Các công cụ bên trong bộ công cụ này được trình bày theo ba cách chính: Công cụ, Mã và thực thi độc lập.