פרויקט OpDemand Shell מכיל ממשק לקוח שורת הפקודה למערכת C2. מודולים פיתון אלה הם חלק מהטכנולוגיה של OpDemand פיקוד ובקרה (C2).
קוד פתוח
פרויקט C2-הפגז נעשה בקוד פתוח על ידי OpDemand.
תיעוד C2 Shell
לפני שאתה מתחיל
- אתה צריך חשבון C2 פעיל. צור אחד בחינם בhttps://c2.opdemand.com/
- הוראות להניח OSX או לינוקס (Windows לא נבדקה, אבל צריך לעבוד)
התקנה
התקנה משתמשת בכנס distutils הסטנדרטי.
פיתון sudo setup.py להתקין
תצורה
הוסף את כתובת הדוא"ל שלך להתחברות C2 תצורת לקוח המקומית.
סט המקומי C2 --email=c2user@opdemand.com
גט מקומי C2 יציג תצורה נוכחית.
התחברות
להוציא התחברות C2, אשר להשתמש בכתובת הדוא"ל המוגדרת לעיל ואנחה אותך לסיסמא.
משתמשים @ תיבה: ~ / סביבת עבודה / התחברות C2 $ C2-פגז
סיסמא:
2011/06/07 08: 44: 12052 - INFO - => POST https://c2core.opdemand.com/session
2011/06/07 08: 44: 13095 - INFO - GET https://c2core.opdemand.com/template
2011/06/07 09: 21: 21879 - INFO - <= 200 OK, קריאת 1,822 בתים של יישום / JSON
[רשימת JSON # תבניות
& Nbsp; {
& Nbsp; # תבנית ראשונה
& Nbsp;},
& Nbsp; {
& Nbsp; # תבנית שנייה
& Nbsp;}
]
2011/06/07 09: 21: 21881 - מידע - הצלחה (תבנית / רשימה) ב0.524872s
מצא את ערך _id של התבנית שברצונך לפרוס, ולהעתיק אותו ללוח שלך.
ליצור פלטפורמה חדשה
בחר את התבנית הרצויה ולהוציא תבנית C2 עומס של _id התבנית, אשר תיצור פלטפורמה טרי.
משתמשים @ תיבה: ~ / סביבת עבודה / C2-פגז תבנית C2 $ העומס --_ id = 6c86dfc5ddfe464199021b8dcaf521a2
2011/06/07 09: 42: 36711 - INFO - => POST https://c2core.opdemand.com/template/6c86dfc5ddfe464199021b8dcaf521a2/load
2011/06/07 09: 42: 38606 - INFO - <= 201 נוצר, קריאת 14,850 בתים של יישום / JSON
{
& Nbsp; # ייצוג JSON הרבה יותר מהתבנית
}
2011/06/07 09: 42: 38757 - מידע - הצלחה (תבנית / עומס) ב2.061932s
פלטפורמות רשימה
להוציא רשימת פלטפורמת C2 לראות את הפלטפורמות הזמינות בחשבון שלך.
משתמשים @ תיבה: ~ / סביבת עבודה / רשימת פלטפורמת C2 $ C2-פגז
2011/06/07 09: 46: 48327 - INFO - => GET https://c2core.opdemand.com/platform
2011/06/07 09: 46: 48884 - INFO - <= 200 OK, קריאת 566 בייטים של יישום / JSON
[
& Nbsp; {
& Nbsp; # הפלטפורמה החדשה שלך
& Nbsp;}
]
2011/06/07 09: 46: 48885 - הצלחה (פלטפורמה / רשימה) ב0.572228s - INFO
העתק את _id של פלטפורמה זו ללוח שלך.
קראו את הפלטפורמה
פעולות רשימה להראות רק ייצוגי סיכום של פריטים באוסף. כדי להציג את הייצוג המלא של פלטפורמה (אחת הכולל רכיבים המקוננים) אתה חייב להנפיק פלטפורמת C2 לקרוא ולספק _id:
משתמשים @ תיבה: לקרוא --_ id = 7bbeacb1082e4810bb1a6643d024496e ~ / סביבת עבודה פלטפורמת C2 $ / C2-פגז
2011/06/07 10: 16: 06050 - INFO - => GET https://c2core.opdemand.com/platform/7bbeacb1082e4810bb1a6643d024496e
2011/06/07 10: 16: 06984 - INFO - <= 200 OK, קריאת 14,850 בתים של יישום / JSON
{
& Nbsp; # ייצוג פלטפורמה מלא
}
2011/06/07 10: 16: 07152 - מידע - הצלחה (פלטפורמה / לקרוא) ב1.117754s
עבודה עם תגובות JSON
הפלטפורמה לעיל היא ארוכה מדי לקריאה. למרבה המזל פגז C2 כולל prettifier JSON משולב שגורם פלט JSON מכל פקודה פגז C2 הרבה יותר קל לקרוא.
כל שעליך לעשות צינור כל פקודה C2 לC2 די:
משתמשים @ תיבה: ~ / סביבת עבודה / id = 6c86dfc5ddfe464199021b8dcaf521a2 לקרוא --_ תבנית C2 $ C2-פגז | די C2
2011/06/07 09: 32: 00646 - INFO - => GET https://c2core.opdemand.com/template/6c86dfc5ddfe464199021b8dcaf521a2
2011/06/07 09: 32: 01378 - INFO - <= 200 OK, קריאת 12,022 בתים של יישום / JSON
2011/06/07 09: 32: 01535 - מידע - הצלחה (תבנית / לקרוא) ב0.904613s
tiers.0.name "Tier רשת"
tiers.0.doctype "רובד"
tiers.0._rev "1-5a37d211b276deee536cd72a016af8fa"
... שאר JSON מיופייף
כל פקודות C2 לקרוא מקלט סטנדרטי ולכתוב לפלט סטנדרטי. משמעות הדבר היא JSON הגלם וJSON מיופייף יכולים להיות מוזרמי כל פקודה אחרת שמשתמשת בצינורות בסגנון UNIX. (לדוגמה: grep).
הגדר את הפלטפורמה
ראשית לקרוא את הפלטפורמה וgrep למידע config ברירת המחדל:
משתמשים @ תיבה: ~ / סביבת עבודה / פלטפורמת C2 $ C2-פגז לקרוא --_ id = 7bbeacb1082e4810bb1a6643d024496e | C2 די | config grep
2011/06/07 10: 26: 29828 - INFO - => GET https://c2core.opdemand.com/platform/7bbeacb1082e4810bb1a6643d024496e
2011/06/07 10: 26: 30486 - INFO - <= 200 OK, קריאת 14,850 בתים של יישום / JSON
2011/06/07 10: 26: 30635 - מידע - הצלחה (פלטפורמה / לקרוא) ב0.821403s
config.access_network "0.0.0.0/0"
config.image_id "עמי-06ad526f"
"Config" config.doctype
config._rev "1-38d720a0975e4d377ccbfd3cb7864185"
config.access_port "22"
config.cloud_name "-מזרח-1"
config.clone_.parent_id "ceee3724a3674bc096a2a6d2dfde7209"
config.clone_.parent_impl.cls_ "c2core.resolve.Config"
config.admin_network "0.0.0.0/0"
config._id "ceee3724a3674bc096a2a6d2dfde7209"
config.impl.cls_ "c2core.resolve.Config"
"7bbeacb1082e4810bb1a6643d024496e" config.views.7bbeacb1082e4810bb1a6643d024496e.0.0
"Config" config.views.7bbeacb1082e4810bb1a6643d024496e.0.1
metadata.config_info.access_port "יציאת האזנה בשרת"
metadata.config_info.access_network "מסכת רשת עבור משתמשים ציבוריים"
"שם אזור AWS" metadata.config_info.cloud_name
metadata.config_info.admin_network "מסכת רשת עבור משתמשי admin"
בואו להגביל את כל הגישה לרשת למארח אחד - 1.1.1.1/32. זה ידרוש שינוי מפתחות access_network וadmin_network.
מאז config הוא מסמך מקונן עם _id שלה ו_rev, אנחנו חייבים לשנות את מסמך config ישירות. לשם כך, אנו עוקבים אחר הכנס הנינוח של קריאת הייצוג וצנרת אותו לפעולת עדכון:
משתמשים @ תיבה: ~ / סביבת עבודה / id = ceee3724a3674bc096a2a6d2dfde7209 לקרוא --_ config C2 $ C2-פגז | עדכון config C2 - --access_network = 1.1.1.1 / 32 --admin_network = 1.1.1.1 / 32
2011/06/07 10: 35: 39643 - INFO - קריאת אובייקט מstdin, Ctrl-C כדי לשבור ...
2011/06/07 10: 35: 39661 - INFO - => GET https://c2core.opdemand.com/config/ceee3724a3674bc096a2a6d2dfde7209
2011/06/07 10: 35: 40573 - INFO - <= 200 OK, קריאת 692 בייטים של יישום / JSON
2011/06/07 10: 35: 40574 - מידע - הצלחה (config / לקרוא) ב0.931527s
2011/06/07 10: 35: 40603 - INFO - => PUT https://c2core.opdemand.com/config/ceee3724a3674bc096a2a6d2dfde7209
2011/06/07 10: 35: 41316 - INFO - <= 200 OK, קריאת 694 בייטים של יישום / JSON
{
& Nbsp; "_ id": "ceee3724a3674bc096a2a6d2dfde7209",
& Nbsp; "_ rev": "2-6a1cac4a1851fead776d4184e1218028",
& Nbsp; "access_network": "1.1.1.1/32",
& Nbsp; "access_port": "22",
& Nbsp; "admin_network": "1.1.1.1/32",
& Nbsp; "clone_": {
& Nbsp; "parent_id": "ceee3724a3674bc096a2a6d2dfde7209",
& Nbsp; "parent_impl": {
& Nbsp; "cls_": "c2core.resolve.Config"
& Nbsp;}
& Nbsp;},
& Nbsp; "cloud_name": "לנו מזרח-1",
& Nbsp; "DOCTYPE": "config",
& Nbsp; "image_id": "עמי-06ad526f",
& Nbsp; "impl": {
& Nbsp; "cls_": "c2core.resolve.Config"
& Nbsp;},
& Nbsp; "נופים": {
& Nbsp; "7bbeacb1082e4810bb1a6643d024496e": [
& Nbsp; [
& Nbsp; "7bbeacb1082e4810bb1a6643d024496e",
& Nbsp; "config"
& Nbsp;]
& Nbsp;]
& Nbsp;}
}
2011/06/07 10: 35: 41317 - INFO - (config / עדכון) הצלחה ב0.730138s
לקרוא מחדש את תצורת הפלטפורמה כדי לאשר את מסמך ההורה כולל את התצורה המעודכנת, מקוננת:
משתמשים @ תיבה: ~ / סביבת עבודה / פלטפורמת C2 $ C2-פגז לקרוא --_ id = 7bbeacb1082e4810bb1a6643d024496e | C2 די | config grep
2011/06/07 10: 37: 11131 - INFO - => GET https://c2core.opdemand.com/platform/7bbeacb1082e4810bb1a6643d024496e
2011/06/07 10: 37: 11825 - INFO - <= 200 OK, קריאת 14,852 בתים של יישום / JSON
2011/06/07 10: 37: 11977 - מידע - הצלחה (פלטפורמה / לקרוא) ב0.862029s
config.access_network "1.1.1.1/32"
config.image_id "עמי-06ad526f"
"Config" config.doctype
config._rev "2-6a1cac4a1851fead776d4184e1218028"
config.access_port "22"
config.cloud_name "-מזרח-1"
config.clone_.parent_id "ceee3724a3674bc096a2a6d2dfde7209"
config.clone_.parent_impl.cls_ "c2core.resolve.Config"
config.admin_network "1.1.1.1/32"
config._id "ceee3724a3674bc096a2a6d2dfde7209"
config.impl.cls_ "c2core.resolve.Config"
"7bbeacb1082e4810bb1a6643d024496e" config.views.7bbeacb1082e4810bb1a6643d024496e.0.0
"Config" config.views.7bbeacb1082e4810bb1a6643d024496e.0.1
metadata.config_info.access_port "יציאת האזנה בשרת"
metadata.config_info.access_network "מסכת רשת עבור משתמשים ציבוריים"
"שם אזור AWS" metadata.config_info.cloud_name
metadata.config_info.admin_network "מסכת רשת עבור משתמשי admin"
התחל הפלטפורמה
עם אישורי שלנו AWS במקום, והפלטפורמה שלנו עמדו בתור אנחנו מוכנים לצאת לדרך. להוציא תחילת פלטפורמת C2 ולתת התזמור להתחיל:
משתמשים @ תיבה: ~ / סביבת עבודה / פלטפורמת C2 $ C2-פגז להתחיל --_ id = 7bbeacb1082e4810bb1a6643d024496e
2011/06/07 10: 42: 52849 - INFO - => POST https://c2core.opdemand.com/platform/7bbeacb1082e4810bb1a6643d024496e/start
2011/06/07 10: 42: 53816 - INFO - <202 מקובלים, קריאת 0 בייטים של יישום / JSON =
2011/06/07 10: 42: 53816 - מידע - הצלחה (פלטפורמה / להתחיל) ב0.981219s
לעקוב אחרי ההתקדמות של הפלטפורמה, לקרוא את הייצוג מלא הפלטפורמה וgrep למעמדם של כל האובייקטים מקוננים:
משתמשים @ תיבה: ~ / סביבת עבודה / פלטפורמת C2 $ C2-פגז לקרוא --_ id = 7bbeacb1082e4810bb1a6643d024496e | C2 די | מצב grep
2011/06/07 10: 43: 06530 - INFO - => GET https://c2core.opdemand.com/platform/7bbeacb1082e4810bb1a6643d024496e
2011/06/07 10: 43: 07228 - INFO - <= 200 OK, קריאת 22,227 בתים של יישום / JSON
2011/06/07 10: 43: 07451 - מידע - הצלחה (פלטפורמה / לקרוא) ב0.935643s
tiers.0.status_.value "בניין"
tiers.0.keypair.status_.detail "יצר זוג מפתחות"
tiers.0.keypair.status_.value "נבנה"
tiers.0.sg.status_.detail "כללים מורשים בהצלחה"
tiers.0.sg.status_.value "נבנה"
tiers.1.status_.value "בניין"
tiers.1.server.status_.detail "מחכה להפעלה, תלוי ועומד כיום"
tiers.1.server.status_.value "בניין"
status_.detail "להתחיל פעולה מופעלת"
status_.value "מתחיל"
אנחנו יכולים לראות את המצב ברמת הפלטפורמה מתחיל. Re-נושא פקודה זו מספר פעמים למעמד של "סקר". Grepping למדינה הוא גם שימושי עבור הוכחה שרכיבים מעבירים כעת. ברגע שהפלטפורמה נעשה, מצב צריך להיראות כך:
משתמשים @ תיבה: ~ / סביבת עבודה / פלטפורמת C2 $ C2-פגז לקרוא --_ id = 7bbeacb1082e4810bb1a6643d024496e | C2 די | מצב grep
2011/06/07 10: 44: 21015 - INFO - => GET https://c2core.opdemand.com/platform/7bbeacb1082e4810bb1a6643d024496e
2011/06/07 10: 44: 21736 - INFO - <= 200 OK, קריאת 27,129 בתים של יישום / JSON
2011/06/07 10: 44: 21988 - מידע - הצלחה (פלטפורמה / לקרוא) ב0.990599s
tiers.0.status_.detail "התחיל בהצלחה"
tiers.0.status_.value "ריצה"
tiers.0.keypair.status_.detail "יצר זוג מפתחות"
tiers.0.keypair.status_.value "ריצה"
tiers.0.sg.status_.detail "כללים מורשים בהצלחה"
tiers.0.sg.status_.value "ריצה"
tiers.1.status_.detail "התחיל בהצלחה"
tiers.1.status_.value "ריצה"
tiers.1.server.status_.detail "מאזין מוכן ב 22 / TCP"
tiers.1.server.status_.value "ריצה"
status_.detail "להתחיל פעולה מוצלחת"
status_.value "ריצה"
הערה סטטוס רמה-האם של "ריצה" עם מאזין השרת מוכן ב -22 / TCP. הפלטפורמה שלנו מוכנה.
שימוש בפלטפורמה
כל הפלטפורמות לפרסם מידע על אופן שימוש בם. רוב הפלטפורמות לפרסם כמה שילוב של:
- כתובות אינטרנט
- שם מארח / שילובי נמל
- שמחוברים לאתר
- סיסמאות
אם אנו קוראים את הפלטפורמה וgrep עבור לפרסם אנו יכולים לראות פלטפורמה זו פורסמה url SSH פשוט:
משתמשים @ תיבה: ~ / סביבת עבודה / פלטפורמת C2 $ C2-פגז לקרוא --_ id = 7bbeacb1082e4810bb1a6643d024496e | C2 די | grep לפרסם
2011/06/07 10: 51: 30694 - INFO - => GET https://c2core.opdemand.com/platform/7bbeacb1082e4810bb1a6643d024496e
2011/06/07 10: 51: 31764 - INFO - <= 200 OK, קריאת 27,129 בתים של יישום / JSON
2011/06/07 10: 51: 32038 - מידע - הצלחה (פלטפורמה / לקרוא) ב1.367026s
"Ssh: //ubuntu@ec2-50-19-55-84.compute-1.amazonaws.com/" tiers.1.server.publish.access_url
"כתובת URL לגישה הפלטפורמה" metadata.publish_info.access_url
דפוס נפוץ הוא לפלטפורמות לפרסם:
- כתובת אתר Admin
- Admin כניסה
- סיסמא מנהל מערכת
- כתובת אתר גישה
לעצור את הפלטפורמה
ברגע שהפלטפורמה הפסיקה, מעמדו ייראה משהו כזה:
משתמשים @ תיבה: ~ / סביבת עבודה / פלטפורמת C2 $ C2-פגז לקרוא --_ id = 7bbeacb1082e4810bb1a6643d024496e | C2 די | מצב grep
2011/06/07 10: 57: 51345 - INFO - => GET https://c2core.opdemand.com/platform/7bbeacb1082e4810bb1a6643d024496e
2011/06/07 10: 57: 52128 - INFO - <= 200 OK, קריאת 27,966 בתים של יישום / JSON
2011/06/07 10: 57: 52424 - מידע - הצלחה (פלטפורמה / לקרוא) ב1.093576s
tiers.0.status_.detail "הפסיק בהצלחה"
tiers.0.status_.value "עצר"
tiers.0.keypair.status_.detail "יצר זוג מפתחות"
tiers.0.keypair.status_.value "עצר"
tiers.0.sg.status_.detail "כללים מורשים בהצלחה"
tiers.0.sg.status_.value "עצר"
tiers.1.status_.detail "הפסיק בהצלחה"
tiers.1.status_.value "עצר"
tiers.1.server.status_.detail "מחכה לפסיקה, הפסיק כרגע"
tiers.1.server.status_.value "עצר"
status_.detail "פעולת תחנה מוצלחת"
status_.value "עצר"
הפלטפורמה עדיין קיימת בענן, אבל זה כבר לא לעלויות מחשוב יקרות (זה, עם זאת לעלויות אחסון זניחות). אתה גם לא גביית דמי פלטפורמת C2. בשלב זה, הפלטפורמה שלך עולה ביעילות שום דבר.
ניתן לעצור פלטפורמות והתחילו ללא הגבלה.
להרוס את הפלטפורמה
להשמיד למעשה את כל הרכיבים הכלולים בפלטפורמת הענן שלך, אתה חייב להוציא פלטפורמת C2 להרוס ולספק _id של פלטפורמת היעד:
משתמשים @ תיבה: ~ / סביבת עבודה פלטפורמת C2 $ / C2-פגז להרוס --_ id = 7bbeacb1082e4810bb1a6643d024496e
2011/06/07 11: 04: 10,667 - INFO - => POST https://c2core.opdemand.com/platform/7bbeacb1082e4810bb1a6643d024496e/destroy
2011/06/07 11: 04: 11953 - INFO - <202 מקובלים, קריאת 0 בייטים של יישום / JSON =
2011/06/07 11: 04: 11953 - מידע - הצלחה (פלטפורמה / להרוס) ב1.300462s
מחק את הפלטפורמה
אם אתה ברשימת הפלטפורמות תראה שהפלטפורמה נהרסה עדיין קיימת:
משתמשים @ תיבה: ~ / סביבת עבודה רשימת פלטפורמת C2 $ / C2-פגז | די C2
2011/06/07 11: 12: 02771 - INFO - => GET https://c2core.opdemand.com/platform
2011/06/07 11: 12: 03149 - INFO - <= 200 OK, קריאת 1,577 בתים של יישום / JSON
2011/06/07 11: 12: 03150 - הצלחה (פלטפורמה / רשימה) ב0.394324s - INFO
"7bbeacb1082e4810bb1a6643d024496e" 0.views.7bbeacb1082e4810bb1a6643d024496e.0.0
0.time_.disconnect.date_ "1307466249.487580"
0.time_.stop.date_ "1307465858.607597"
0.time_.start.date_ "1307465019.767619"
0.time_.build.date_ "1307465019.475195"
0.time_.destroy.date_ "1307466249.487347"
0.time_.connect.date_ "1307466240.220381"
0.status_.detail "להרוס פעולה מוצלחת"
0.status_.value "נהרס"
"פלטפורמה" 0.doctype
0._rev "7-38fe44c5a900894adf48f4a416c94338"
0.template.cls_ "lib.platform.vanilla.natty.UbuntuNattyPlatform"
0._id "7bbeacb1082e4810bb1a6643d024496e"
0.state.running כוזב
0.state.transitioning כוזב
0.state.built כוזב
0.impl.cls_ "lib.platform.vanilla.natty.UbuntuNattyPlatform"
0.interval_.destroy 9.3936290740966797
0.interval_.stop 33.600441932678223
0.interval_.build 57.54404091835022
0.interval_.start 57.836580991744995
מהמרווח אתה יכול לראות את זה לקח:
- 58 שניות כדי להתחיל פלטפורמה זו
- 33 שניות כדי לעצור את זה
- 9 שניות כדי להרוס אותה
אתה תמיד יכול להתחיל מחדש את פלטפורמה נהרסה ויש לו לבנות מחדש את מרכיבי הענן שוב. עם זאת כדי להשלים למחוק את הפלטפורמה והמסמכים המקוננים, אתה חייב להוציא פלטפורמת C2 למחוק:
משתמשים @ תיבה: ~ / סביבת עבודה פלטפורמת C2 $ / C2-פגז למחוק --_ id = 7bbeacb1082e4810bb1a6643d024496e
2011/06/07 11: 15: 45235 - INFO - => DELETE https://c2core.opdemand.com/platform/7bbeacb1082e4810bb1a6643d024496e
2011/06/07 11: 15: 46474 - INFO - <= 204 ללא תוכן, קריאת 0 בייטים של יישום / JSON
2011/06/07 11: 15: 46474 - מידע - הצלחה (פלטפורמה / למחוק) ב1.252582s
כדי לאשר, אנו יכולים לראות רשימת הפלטפורמה שלנו היא עכשיו ריקה:
משתמשים @ תיבה: ~ / סביבת עבודה / רשימת פלטפורמת C2 $ C2-פגז
2011/06/07 11: 15: 51890 - INFO - => GET https://c2core.opdemand.com/platform
2011/06/07 11: 15: 52296 - INFO - <= 200 OK, קריאת 2 בתים של יישום / JSON
2011/06/07 11: 15: 52297 - הצלחה (פלטפורמה / רשימה) ב0.423616s - INFO
התנתקויות
על ידי הנפקת מידע C2 אנו יכולים לראות את המצב של הפגישה שלנו:
משתמשים @ תיבה: ~ / סביבת עבודה / מידע C2 $ C2-פגז
2011/06/07 11: 17: 11656 - INFO - => GET https://c2core.opdemand.com/session/73c2e9b49d01c695fb6c74927b8eb0eee5cdc82c2064cd728a8033eb83ea5b95
2011/06/07 11: 17: 12134 - INFO - <= 200 OK, קריאת 4082 בייטים של יישום / JSON
{
& Nbsp; "חשבון": "C2-opdemand",
& Nbsp; "דואר אלקטרוני": "gabriel@opdemand.com",
& Nbsp; "expires_at": "יום שישי, יוני 10, 2011 08:44",
& Nbsp; "session_id": "73c2e9b49d01c695fb6c74927b8eb0eee5cdc82c2064cd728a8033eb83ea5b95"
}
2011/06/07 11: 17: 12138 - מידע - הצלחה (מידע) ב0.497018s
התנתקויות היא התנתקות פשוט C2:
משתמשים @ תיבה: ~ / סביבת עבודה / התנתקות C2 $ C2-פגז
2011/06/07 11: 17: 44903 - INFO - => DELETE https://c2core.opdemand.com/session/73c2e9b49d01c695fb6c74927b8eb0eee5cdc82c2064cd728a8033eb83ea5b95
2011/06/07 11: 17: 45330 - INFO - <= 204 ללא תוכן, קריאת 0 בייטים של יישום / JSON
2011/06/07 11: 17: 45330 - מידע - הצלחה (התנתקות) ב0.443405s
משתמשים @ תיבה: ~ / סביבת עבודה / מידע C2 $ C2-פגז
2011/06/07 11: 17: 49025 - מידע - הצלחה (מידע) ב0.000376s
אודות C2
הפיקוד ובקרת הטכנולוגיה של OpDemand (C2) ממכנת את הפריסה וניהול של תשתית מחשוב ענן. עם ממשק פשוט כמו "להתחיל, להפסיק, שיבוט ולהרוס," C2 נותן לך את פיקוד על הענן שלך
דרישות :.
- Python
תגובות לא נמצא