पायथन का उपयोग करके आर्कगिस सर्वर मैप सेवाओं को शुरू करना और रोकना?


10

क्या पायथन का उपयोग करके प्रोग्रामिक रूप से आर्कगिस सर्वर मैप सेवाओं को रोकना और शुरू करना संभव है?


यह सिर्फ एक REST क्वेरी है।
विंस

धन्यवाद। लेकिन मुझे अपनी .py स्क्रिप्ट में लॉगिन और पासवर्ड लिखने की ज़रूरत है, किसी भी विचार से कैसे बचें। उदाहरण के लिए, क्या मैं .ags फ़ाइल का उपयोग कर सकता हूं?)
लोरा

दुर्भाग्यवश नहीं; जब वे एक .agsफ़ाइल को टोकन में बदलने के लिए एक फ़ंक्शन प्रदान करने में विफल रहे तो उन्होंने डिज़ाइन में एक बड़ा छेद छोड़ दिया । आप किसी प्रमाणपत्र (PEM फ़ाइल) से कनेक्ट करने का प्रयास कर सकते हैं, हालाँकि इसके लिए सादे वेनिला HTTP से अधिक की आवश्यकता होती है।
विंस

जवाबों:


7

ArcGIS 10.0 में, अलग-अलग सेवाओं के लिए, जैसे कि आप ArcIMS को बनाए रखने के लिए कमांड-लाइन कर सकते हैं, एक कमांडलाइन टूल है जिसे आप कोड गैलरी ( AGSSOM ) से डाउनलोड कर सकते हैं जो आपको प्रमुख क्षेत्रों का मूल देता है लेकिन कोई ग्रेन्युलर सेवा नहीं है। 'स्तर नियंत्रण जिसका उपयोग आप इस समय स्टार्ट / स्टॉप / रिफ्रेश / ऐड / रिमूव AGS सेवाओं में कर सकते हैं।

अधिक स्वचालित स्थान से सेवाओं के नियंत्रण को बेहतर बनाने के अनुरोधों के साथ कई स्थानों पर ideas.arcgis.com है


ArcGIS आइडियाज का लिंक टूटा है। किसी भी घटना में, शायद यह जवाब 10.7 में अपडेट किया जा सकता है।
PolyGeo

12

उन लोगों के लिए जो आर्किसिस 10.0 का उपयोग कर रहे हैं, और एजी राइट द्वारा अनुशंसित एजीएसएसओएम का उपयोग करने में रुचि रखते हैं, मैंने निम्नलिखित कोड को एक साथ रखा है। यह आपको आवश्यक जियोडेटाबेस कार्य करने की अनुमति देने वाली सभी सेवाओं को रोक देगा, और फिर पहले से चल रही सेवाओं को पुनः आरंभ करेगा।

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])

4

आर्कगिस सर्वर 10.3 के रूप में, कई पायथन-आधारित कमांड लाइन उपयोगिताओं को आर्कगिस सर्वर के साथ बंडल किया गया है।

प्रति ESRI के प्रलेखन वे आम तौर पर यहाँ स्थापित कर रहे हैं:

C:\Program Files\ArcGIS\Server\tools\admin

प्रबंधन सेवा उपयोगिता शुरू रोक या हटाने सेवाओं के लिए अच्छा है:

python manageservice.py -u admin -p admin -s http://gisserver.domain.com:6080 -n Beirut/Parcels -o start


3

जेफ बेरी ने अपने जवाब में जो पोस्ट किया था, उसी के अनुसार, मैंने एक छोटा सा फंक्शन लिखा था जो कि AGGOM टूल्स का उपयोग करके आर्कजीस सर्वर 10.0 मैप सर्विसेज को मैनेज करेगा।

मेरे मामले में मैं व्यक्तिगत रूप से नाम से सेवाओं को बुलाता हूं, एक समय में एक को रोकना और शुरू करना।

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()

उसके बाद, आप प्रारंभ करने के लिए -s को रोकने के लिए -x का उपयोग करके नाम से एक सेवा कॉल कर सकते हैं:

manageMapServices("-s", "Folder/Service", "MapServer")

2

ArcGIS 10.7, और कुछ पुराने संस्करणों के लिए, अन्य चीजों को रोकने, शुरू करने, हटाने और अन्य चीजों के एक समूह का पूरा सेट यहां पाया जा सकता है: http://www.arcgis.com/home/item.html?id= 12d73730e784e47818162b4d41ee340 (यदि आपके पूर्ण निष्पादन योग्य की आवश्यकता है तो इसके अंदर भी .exe है)

या मदद में गोता लगाएँ और कई विकल्पों के बारे में पढ़ें (आउट ऑफ़ द बॉक्स कमांड लाइन, पायथन अपी, कोड स्निपेट्स) यहाँ: https://enterprise.arcgis.com/en/server/latest/administer/linux/scripting-arcgis -server-administration.htm

हालाँकि, इन सभी बिंदुओं को आपके द्वारा संदर्भित प्रश्न के अन्य उत्तरों के रूप में शामिल किया गया है। AGSSOM सर्वर 10.0 और अधिक पुराने के लिए एक .net उपयोगिता लिखा गया था। एक 10.1 और नए संस्करण का उत्पादन किया गया था, लेकिन इसे लोकप्रियता कभी नहीं मिली क्योंकि आपको सर्वर के साथ इंटरफ़ेस करने के लिए भारी सी # / vb कोड की आवश्यकता नहीं थी। सर्वर 10.1+ को एक अच्छी तरह से संरचित REST एपीआई के साथ जारी किया गया था, जिससे उच्च स्तर की भाषाएं, जैसे पायथन, और इस तरह से स्क्रिप्ट के लिए एक व्यापक दर्शकों की अनुमति मिलती है और भारी agssom.exe उपयोगिता की आवश्यकता के बिना इसे प्रशासित किया जाता है ।


लेकिन मुझे अपनी .py स्क्रिप्ट में लॉगिन और पासवर्ड लिखने की ज़रूरत है, किसी भी विचार से कैसे बचें। उदाहरण के लिए, क्या मैं .ags फ़ाइल का उपयोग कर सकता हूं?)
लोरा

आप .ags फ़ाइल का उपयोग सेवाओं को रोकने / शुरू करने के लिए एक तंत्र के रूप में नहीं कर सकते। पासवर्ड को फ़ाइल में सहेजने की आवश्यकता है, कहीं। चाहे वह .py फ़ाइल ही हो, या यदि आप इसे एक अलग फ़ाइल में रखना चाहते हैं जो .py फ़ाइल पढ़ती है।
कहिम्बा

2

सर्वर 10.1 के लिए आर्कजीआईएस पर आप आर्कजीआईएस सर्वर एडमिनिस्ट्रेशन टूलकिट - 10.1+ का उपयोग कर सकते हैं

विवरण से (मेरी है)

ArcGIS सर्वर प्रशासन टूलकिट आपको अपने ArcGIS सर्वर को प्रबंधित करने में मदद करने के लिए उपकरण और स्क्रिप्ट प्रदान करता है। इन उपकरणों को पाइथन में लिखा गया है और एक आर्कगिस सर्वर के REST एडमिन से कनेक्ट होता है, जिसमें आप कुछ सामान्य प्रशासनिक कार्यों को जल्दी और आसानी से कर सकते हैं, जिनमें शामिल हैं: - सूची आइटम

  • किसी सेवा को रोकना, शुरू करना या हटाना
  • एक सेवा का नाम बदल रहा है
  • लॉग स्तर को संशोधित करना और पुराने लॉग को साफ़ करना
  • एसओई अपलोड करें और पंजीकरण करें
  • उन स्थानों से एक मानचित्र सेवा का निर्माण किया जा रहा है जो मानचित्र सेवा को देखा गया था (लॉग का निरीक्षण करके)
  • प्रकाशन सेवा परिभाषाएँ (.SD)

इस किट के अंदर के उपकरण तीन मुख्य तरीकों से प्रस्तुत किए जाते हैं: उपकरण, कोड और स्टैंडअलोन निष्पादन योग्य।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.