คำถามติดแท็ก curl

cURL เป็นเครื่องมือ CLI สำหรับการออกคำขอ HTTP GET, POST และ PUT

1
cUrl: รายการอาร์กิวเมนต์ยาวเกินไป
ฉันได้รับข้อผิดพลาด: Argument list too longเมื่อพยายามใช้ cUrl เพื่อส่งไฟล์ใน base64 ภายในเนื้อความของ JSON ของฉัน ฉันกำลังใช้สิ่งนี้: DATA=$( base64 "$FILE" ) curl -X POST -H "Content-Type: application/json" -d '{ "data": "'"$DATA"'" }' $HOST มีวิธีอื่นในการรับ DATA ในเนื้อหาของ JSON ของฉันหรือไม่ คำนึงถึงว่าฉันต้องอ่านไฟล์ในระบบไฟล์ของฉันแปลงเป็น base64 แล้วส่งมันเข้าไปในร่างกาย
15 curl 

4
ตั้งค่าการหมดเวลาสำหรับการตอบกลับหน้าเว็บด้วย curl
ฉันใช้เครื่องมือเพื่อตรวจสอบว่าเว็บเพจกำลังทำงานอยู่หรือไม่ เครื่องมือใช้curlคำสั่งภายในเพื่อดึงเอาท์พุท อย่างไรก็ตามเมื่อหน้าเว็บใช้เวลาในการตอบสนองนานขึ้นผลลัพธ์ก็จะกลับมาพร้อมกับTIMEOUTข้อผิดพลาด ไม่มีวิธีที่ฉันสามารถเพิ่มการหมดเวลาจากเครื่องมือ มีวิธีใดบ้างที่จะตั้งค่า / แก้ไขระยะเวลาการหมดเวลาสำหรับการตอบกลับจากหน้าเว็บ มีตัวแปรใดบ้างที่สามารถแก้ไขได้?
15 curl  timeout 

2
การเรียกใช้หลายพันกระบวนการพื้นหลังขดในแบบคู่ขนานในสคริปต์ทุบตี
ฉันกำลังใช้งาน thounsand ของกระบวนการ background curlขนานในสคริปต์ทุบตีต่อไป START=$(date +%s) for i in {1..100000} do curl -s "http://some_url_here/"$i > $i.txt& END=$(date +%s) DIFF=$(( $END - $START )) echo "It took $DIFF seconds" done ฉันมีเซิร์ฟเวอร์เฉพาะ 49Gb Corei7-920 (ไม่ใช่เสมือน) ฉันติดตามการใช้หน่วยความจำและ CPU ผ่านtopคำสั่งและพวกเขาอยู่ไกลจากขอบเขต ฉันกำลังใช้ps aux | grep curl | wc -lเพื่อนับจำนวนกระบวนการcurlปัจจุบัน ตัวเลขนี้เพิ่มขึ้นอย่างรวดเร็วมากถึง 2-4 พันจากนั้นเริ่มลดลงอย่างต่อเนื่อง หากฉันเพิ่มการแยกวิเคราะห์อย่างง่าย ๆ …
14 linux  performance  bash  curl  wget 

1
การอัปโหลดหลายไฟล์ผ่าน FTP โดยใช้ curl
ฉันกำลังพยายามอัพโหลดไฟล์ข้อความทั้งหมดภายในโฟลเดอร์ปัจจุบันผ่าน FTP ไปยังตำแหน่งเซิร์ฟเวอร์โดยใช้ curl ฉันลองบรรทัดต่อไปนี้: curl -T "{file1.txt, file2.txt}" ftp://XXX --user YYY โดยที่ XXX คือที่อยู่ IP ของเซิร์ฟเวอร์และ YYY เป็นชื่อผู้ใช้และรหัสผ่าน ฉันสามารถถ่ายโอน file1.txt ไปยังเซิร์ฟเวอร์ได้สำเร็จ แต่มันบ่นเกี่ยวกับไฟล์ที่สองว่า 'ไม่สามารถเปิด' file_name '!' ฉันสลับชื่อไฟล์และทำงานกับ file2.txt ไม่ใช่ file1.txt ดูเหมือนว่าฉันผิดไวยากรณ์ แต่นี่คือสิ่งที่คู่มือพูด? นอกจากนี้ฉันควรจะทำสิ่งนี้: curl -T *.txt ftp://XXX --user YYY เพราะฉันจะไม่รู้จักชื่อของไฟล์ txt ในโฟลเดอร์ปัจจุบันหรือจำนวนไฟล์ที่จะถ่ายโอนเสมอ ฉันคิดว่าฉันอาจต้องเขียนสคริปต์ทุบตีที่รวบรวมเอาท์พุทของls *.txtลงในอาเรย์และวางลงในรูปแบบไฟล์หลายไฟล์ที่ต้องการโดย curl ฉันไม่ได้ทำสคริปต์ทุบตีมาก่อน - นี่เป็นวิธีที่ง่ายที่สุดในการบรรลุเป้าหมายนี้หรือไม่?
14 shell-script  ftp  curl 

5
ฉันจะรับสถานะ http ของไซต์ในเชลล์สคริปต์ได้อย่างไร
ฉันคิดว่าขดจะทำงาน ฉันเขียนในสคริปต์: #!/bin/sh function test { res=`curl -I $1 | grep HTTP/1.1 | awk {'print $2'}` if [ $res -ne 200 ] then echo "Error $res on $1" fi } test mysite.com test google.com ปัญหาที่นี่ไม่ว่าฉันจะทำอะไรฉันไม่สามารถหยุดพิมพ์ด้านล่างเพื่อ stdout: % Total % Received % Xferd Average Speed Time Time Time Current ฉันต้องการ cronjob …
13 cron  curl  output 

1
ไซต์เข้าสู่ระบบโดยใช้ cURL
ฉันกำลังพยายามเข้าสู่ระบบจากบรรทัดคำสั่ง cURL ด้วยคำสั่ง curl --data "ชื่อผู้ใช้ = ผู้ใช้ & รหัสผ่าน = ผ่าน & ส่ง = เข้าสู่ระบบ" http://www.ip.com:8080/LoginApplication/Login.jsp และหลังจากนั้นพยายามเข้าถึงหน้าเว็บด้านในโดยใช้ curl http://www.ip.com:8080/LoginApplication/Success.jsp แต่ฉันถูกเปลี่ยนเส้นทางไปยังหน้าข้อผิดพลาดเพราะไม่ได้เข้าสู่ระบบ สิ่งที่ฉันหายไปในคำสั่งแรกของฉันเพื่อให้สามารถรักษาเซสชั่น? ฉันมีเว็บไซต์ที่โฮสต์ในพื้นที่
13 curl 

2
มีวิธีบรรทัดคำสั่งที่ฉันสามารถตรวจสอบว่าไฟล์ที่ดาวน์โหลดมานั้นสมบูรณ์หรือไม่?
ฉันกำลังเขียนสคริปต์ที่เกี่ยวข้องกับการดาวน์โหลดและการจัดการไฟล์และฉันต้องการให้แน่ใจว่าไฟล์ไม่สมบูรณ์ (เนื่องจากการเชื่อมต่อที่ลดลง) ก่อนที่ฉันจะทำงานกับมัน

3
การร้องขอเว็บอัตโนมัติโดยใช้ curl?
ฉันมีระบบ "แบบองค์กร" ที่ฉันต้องใช้ในที่ทำงาน บางคนน่ากลัวด้วยกรอบป๊อปอัพและอื่น ๆ ฉันกำลังคิดที่จะทำสิ่งต่าง ๆ โดยอัตโนมัติด้วยการใช้ขดหรืออะไรทำนองนั้น ฉันต้องการเข้าสู่ระบบคลิกที่การเชื่อมโยงหลายมิติตั้งค่าข้อมูลบางอย่างและพวกเขาจะโพสต์บางส่วน เป็นไปได้ไหมที่จะใช้ curl? หรือฉันจะใช้ซีลีเนียมได้ดีกว่า
13 curl  web 

5
เขียนเอาต์พุตของ wget หรือ curl ไปยังชื่อไฟล์ที่กำหนดเองตาม url
http://www.abc.com/123/def/ghi/jkl.mnoเช่นฉันมีการเชื่อมโยง ฉันต้องการดาวน์โหลดโดยใช้wgetหรือcurlรับชื่อของไฟล์ที่ส่งออกdef_ghi_jkl.mnoซึ่งเป็นส่วนที่def_ghiนำมาจากลิงค์ ฉันจะใส่wgetคำสั่งนี้ในสคริปต์เพื่อดาวน์โหลดหลายไฟล์ดังนั้นจึงไม่สามารถให้ชื่อไฟล์ที่ส่งออกได้อย่างชัดเจน
12 filenames  wget  curl 

3
วิธีที่ปลอดภัยและง่ายที่สุดในการใช้รหัสผ่านที่ผู้ใช้พิมพ์บน bash กลายเป็นส่วนหนึ่งของ stdin ไปยังโปรแกรมอย่างไร
ฉันกำลังมองหา (1) ที่ปลอดภัยที่สุดและ (2) วิธีที่ง่ายที่สุดในการให้ผู้ใช้พิมพ์รหัสผ่านบน bash shell prompt และให้รหัสผ่านนั้นกลายเป็นส่วนหนึ่งของ stdin ไปยังโปรแกรม นี่คือสิ่งที่ stdin จำเป็นต้องมีลักษณะ: {"username":"myname","password":"<my-password>"}ซึ่ง<my-password>เป็นสิ่งที่พิมพ์ลงในเชลล์พรอมต์ ถ้าฉันควบคุมโปรแกรม stdin ได้ฉันสามารถแก้ไขมันเพื่อขอรหัสผ่านอย่างปลอดภัยและใส่ลงไป แต่ downstream เป็นคำสั่งทั่วไปที่เป็นมาตรฐาน ฉันได้พิจารณาและปฏิเสธวิธีการที่ใช้สิ่งต่อไปนี้: ผู้ใช้ที่พิมพ์รหัสผ่านลงในบรรทัดคำสั่ง: รหัสผ่านจะปรากฏบนหน้าจอและผู้ใช้ทุกคนสามารถมองเห็นได้ด้วย "ps" การแก้ไขตัวแปรเชลล์ในอาร์กิวเมนต์ของโปรแกรมภายนอก (เช่น...$PASSWORD...): รหัสผ่านจะยังคงปรากฏให้ผู้ใช้ทุกคนเห็นผ่าน "ps" ตัวแปรสภาพแวดล้อม (ถ้าทิ้งไว้ในสภาพแวดล้อม): รหัสผ่านจะสามารถมองเห็นได้ในกระบวนการลูกทั้งหมด แม้กระบวนการที่น่าเชื่อถืออาจเปิดเผยรหัสผ่านหากพวกเขาถ่ายโอนข้อมูลหลักหรือตัวแปรสภาพแวดล้อมการถ่ายโอนข้อมูลเป็นส่วนหนึ่งของการวินิจฉัย รหัสผ่านที่อยู่ในไฟล์เป็นระยะเวลานานแม้ไฟล์ที่มีสิทธิ์ จำกัด : ผู้ใช้อาจเผลอเปิดเผยรหัสผ่านและผู้ใช้รูทอาจบังเอิญเห็นรหัสผ่าน ฉันจะแก้ปัญหาปัจจุบันของฉันเป็นคำตอบด้านล่าง แต่จะเลือกคำตอบที่ดีกว่าถ้ามีคนมาด้วย ฉันคิดว่าควรจะมีบางสิ่งที่ง่ายกว่าหรืออาจมีบางคนเห็นข้อกังวลด้านความปลอดภัยที่ฉันพลาดไป
12 bash  security  password  curl 

3
วิธีการแปลง ssl ciphers ให้เป็นฟอร์แมทฟอร์แมต?
เอกสาร SSL อย่างเป็นทางการรายการยันต์ในรูปแบบที่แตกต่างจากขดใช้เวลา ตัวอย่างเช่นถ้าผมต้องการที่ขดที่จะใช้ตัวเลข TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA curl --ciphers ecdhe_rsa_3des_shaผมต้องผ่านมัน ฉันรู้ว่าการแมปบางอย่างเป็นเช่นไร แต่ไม่ใช่ทั้งหมด - ตัวอย่างเช่นฉันต้องส่งต่อการขดเพื่อให้ใช้การเข้ารหัส TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 อย่างไร มีทุกที่ที่ฉันสามารถหาเอกสารที่แสดงว่าชื่อรหัสในแผนที่ ssl docs กับชื่อตัวเลขที่ขดยอมรับ? แก้ไข:ในที่สุดฉันก็ค้นพบว่า curl ของฉันได้รับการสนับสนุนโดย NSS ไม่ใช่ OpenSSL และปัญหานี้เกิดขึ้นเนื่องจากไม่มีเอกสารที่ดีเกี่ยวกับการใช้ curl ที่ NSS ได้รับการสนับสนุนในขณะที่มันต้องการอาร์กิวเมนต์ที่แตกต่างจาก OpenSSL เพื่อใช้ตัวเลขเดียวกัน ดังนั้นคำถามของฉันเฉพาะกับ NSS

1
จะทำให้ Gnu / Linux เชื่อถือใบรับรองที่ Windows เชื่อถือได้หรือไม่
มีเซิร์ฟเวอร์ที่มีห่วงโซ่ SSL ใช้งานไม่ได้ดังที่รายงานโดยการตรวจสอบ SSL นี้ : ฉันรู้ว่านี่เป็นปัญหาที่ควรแก้ไขในเซิร์ฟเวอร์ แต่บางครั้งมันก็ยากที่จะแก้ไข (ฉันไม่ใช่ผู้ดูแลระบบของเซิร์ฟเวอร์) สิ่งนี้คือ Chrome / Mozilla / Edge บน Windows เชื่อถือใบรับรองเว็บไซต์ต่อไป : อย่างไรก็ตามในการปรับใช้ Gnu / Linux (Ubuntu 18.04 ใน Docker) ใบรับรองไม่น่าเชื่อถือ: curl: (60) SSL certificate problem: unable to get local issuer certificate ฉันลองupdate-ca-certificatesและแม้แต่นำเข้าใบรับรองหลักของ Globalsign update-ca-certificatesรายงานใบรับรองซ้ำในกรณีนั้น อย่างไรก็ตามไม่มีอะไรทำงาน วิธีการทำซ้ำ ใช้นักเทียบท่า: docker run -it ubuntu:18.04 # …

5
อ่านและยืนยันเชลล์สคริปต์ก่อนทำการไพพ์จาก curl ถึง sh (curl -s [url] | sh)
เมื่อใดก็ตามที่ฉันต้องเรียกใช้งานเชลล์สคริปต์จากเว็บcurl -s [url] | shฉันจะเปิดurlในเว็บเบราว์เซอร์ก่อนเพื่อให้แน่ใจว่าสคริปต์นั้นไม่เป็นอันตรายและปลอดภัยในการทำงาน ฉันจำได้ว่าเห็นเคล็ดลับบรรทัดคำสั่งที่ทำให้สามารถอ่านสคริปต์จากบรรทัดคำสั่งแล้วยืนยันการทำงานหลังจากอ่านสคริปต์ ถ้าฉันจำได้ถูกต้องมันดูเหมือนว่าcurl -s [url] | something...here | shและไม่ต้องการติดตั้งซอฟต์แวร์ใด ๆ ไม่มีใครรู้เคล็ดลับนี้

1
วิธีไพพ์ html เป็น lynx
ฉันกำลังทดสอบการโทร ajax จากคอนโซล ฉันชอบกำจัดเสียงรบกวนข้อมูล meta ที่เป็นมาร์กอัพ HTML และเพิ่งอ่านเนื้อหาดังนั้นฉันชอบที่จะไพพ์มันลงในเทอร์มินัลเบราว์เซอร์เช่น lynx แต่: curl www.google.de | lynx เพิ่งเปิด lynx ตัวอย่างใหม่ ฉันไม่ต้องการ: curl www.google.de > someFile.html && lynx someFile.html
11 pipe  curl  html  stdin  lynx 

2
ฉันจะระบุว่า curl (ผ่านทางบรรทัดคำสั่ง) เขียนทับไฟล์ได้อย่างไรถ้ามันมีอยู่แล้ว?
ฉันใช้ curl ในไวยากรณ์นี้: curl -o myfile.jpg http://mysite.com/myfile.jpg หากฉันรันคำสั่งนี้สองครั้งฉันจะได้รับสองไฟล์: myfile.jpg myfile-1.jpg ฉันจะบอก CURL ได้อย่างไรว่าฉันต้องการให้มันเขียนทับไฟล์หากมีอยู่?
11 filenames  io  curl 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.