นี่คือคำสั่ง rpost ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
rpost - โพสต์บทความไปยังเซิร์ฟเวอร์ข่าว NNTP
เรื่องย่อ
โพสต์ [ ชื่อโฮสต์ ] [ @ชื่อไฟล์ ] [ -s | -S ชื่อไฟล์ ] [ -e | -E ชื่อไฟล์ ] [ -b ไฟล์ชุด
] [ -r rnews_file rnews_path ] [ -p คำนำหน้า ] [ -Q ] [ -d ] [ -U รหัสผู้ใช้ ] [ -P รหัสผ่าน ] [
-M ] [ -N หมายเลขพอร์ต ] [ -l วลี_ไฟล์ ] [ -D ] [ -T หมดเวลา ] [ -u ] [ -n ]
[ -F เพิร์ล_ไฟล์ ] [ -i ] [ -z ] [ -f ตัวกรอง $$o= filter_arg1 ... ]
DESCRIPTION
โพสต์ จะลงบทความตั้งแต่หนึ่งบทความขึ้นไป ระบุโดย ชื่อโฮสต์ ถ้าชื่อโฮสต์ไม่ใช่
ระบุ rpost จะใช้ตัวแปรสภาพแวดล้อม NNTPSERVER. ชื่อโฮสต์ may
รวมหมายเลขพอร์ตในแบบฟอร์ม เจ้าภาพ:พอร์ต หากใช้แบบฟอร์มนี้ พอร์ตใดๆ
หมายเลขที่ระบุผ่านตัวเลือก -N จะถูกละเว้น
ทั่วไป Options
@ชื่อไฟล์
ตัวเลือกนี้บอกให้ rpost อ่านตัวเลือกอื่นจากไฟล์นอกเหนือจากบรรทัดคำสั่ง
-D ตัวเลือกนี้บอกให้ rpost บันทึกข้อความการดีบักต่างๆ ไปที่ "debug.suck" เป็นหลัก
สำหรับการใช้งานโดยนักพัฒนา
-e|-E ชื่อไฟล์
ตัวเลือกเหล่านี้จะส่งข้อความแสดงข้อผิดพลาดทั้งหมด (ปกติจะแสดงบน stderr) ไปยังตัวเลือกอื่น
ไฟล์. เวอร์ชันตัวพิมพ์เล็ก -e จะส่งข้อความแสดงข้อผิดพลาดไปยังค่าดีฟอลต์ที่คอมไพล์แล้ว
กำหนดไว้ใน suck_config.h ค่าเริ่มต้นคือ suck.errlog รุ่นตัวพิมพ์ใหญ่ -E,
ต้องการพารามิเตอร์ชื่อไฟล์ ข้อความแสดงข้อผิดพลาดทั้งหมดจะถูกส่งไปยังไฟล์นี้
-i
ตัวเลือกนี้บอกให้ rpost ละเว้น 201 (ไม่อนุญาตให้โพสต์) จากข้อความต้อนรับ
และจะพยายามโพสต์ต่อไป เซิร์ฟเวอร์ข่าวบางแห่ง (inn-2.3.1) ส่ง 201 ไม่อนุญาตให้โพสต์
เมื่อพวกเขาใช้คำสั่ง AUTHINFO เพื่อตรวจสอบสิทธิ์ในการโพสต์
-l วลี_ไฟล์
ตัวเลือกนี้บอกให้ rpost โหลดในไฟล์วลีอื่น แทนที่จะใช้ไฟล์ในตัว
ข้อความ สิ่งนี้ช่วยให้คุณมีวลีพิมพ์ rpost ในภาษาอื่นหรือเพื่ออนุญาต
คุณสามารถปรับแต่งข้อความโดยไม่ต้องสร้างใหม่ ดู "วลีภาษาต่างประเทศ" ใน
suck.1 สำหรับรายละเอียดเพิ่มเติม
-M
ตัวเลือกนี้บอกให้ rpost ส่งคำสั่ง "mode reader" ไปยังเซิร์ฟเวอร์ระยะไกล ถ้าคุณ
รับข้อความคำสั่งที่ไม่ถูกต้องจาก rpost ทันทีหลังจากประกาศต้อนรับ จากนั้น
ลองตัวเลือกนี้
-n
ตัวเลือกนี้บอกให้ rpost แสดงชื่อไฟล์ในขณะที่กำลังอัปโหลด
-N หมายเลขพอร์ต
ตัวเลือกนี้บอกให้ rpost ใช้หมายเลขพอร์ต NNRP สำรองเมื่อเชื่อมต่อกับโฮสต์
แทนที่จะเป็นหมายเลขพอร์ตเริ่มต้น 119
-s|-S ชื่อไฟล์
ตัวเลือกเหล่านี้จะส่งข้อความสถานะทั้งหมด (ปกติจะแสดงบน stdout) ไปยัง an
ไฟล์สำรอง เวอร์ชันตัวพิมพ์เล็ก -s จะส่งข้อความสถานะไปที่
คอมไพล์ในค่าเริ่มต้นที่กำหนดไว้ใน suck_config.h ค่าเริ่มต้นคือ /dev/null ดังนั้นจึงไม่มีสถานะ
ข้อความจะปรากฏขึ้น เวอร์ชันตัวพิมพ์ใหญ่ -S ต้องการพารามิเตอร์ชื่อไฟล์
ข้อความสถานะทั้งหมดจะถูกส่งไปยังไฟล์นี้
-T ตัวเลือกนี้จะแทนที่ค่า TIMEOUT ที่คอมไพล์แล้ว นี่คือเวลาที่ rpost รอ
ข้อมูลจากรีโมตโฮสต์ก่อนหมดเวลาและยกเลิก
-u ตัวเลือกนี้บอกให้ rpost ส่งคำสั่ง AUTHINFO USER ทันทีที่เชื่อมต่อกับ
เซิร์ฟเวอร์ระยะไกล แทนที่จะรอการขออนุญาต คุณต้องจัดหา
-U และ -P ตัวเลือกเมื่อคุณใช้ตัวเลือกนี้
-U หมายเลขผู้ใช้ -P รหัสผ่าน
สองตัวเลือกนี้ให้คุณระบุ ID ผู้ใช้และรหัสผ่าน หากเซิร์ฟเวอร์ NNTP ของคุณต้องการ
พวกเขา
-Q
ตัวเลือกนี้ช่วยให้คุณระบุรหัสผู้ใช้และรหัสผ่านผ่านตัวแปรสภาพแวดล้อม
"NNTP_USER" และ "NNTP_PASS" แทนในบรรทัดคำสั่ง สิ่งนี้จะป้องกันศักยภาพ
ปัญหาด้านความปลอดภัยที่ผู้ทำคำสั่ง ps สามารถเห็นการเข้าสู่ระบบและรหัสผ่านของคุณ
-z ตัวเลือกนี้บอกให้ rpost ใช้ SSL เพื่อสื่อสารกับโฮสต์ระยะไกล ถ้า SSL เป็น
รวบรวมเป็น rpost
STDIN โหมด
โพสต์
rpost ชื่อโฮสต์
rpost อ่านหนึ่งบทความจาก stdin และส่งไปยังเซิร์ฟเวอร์ NNTP บทความต้องมี
ส่วนหัวอย่างน้อยสองบรรทัดคือ Newsgroups: และ Subject: และเนื้อหา (บทความ)
ส่วนหัวและส่วนเนื้อหาต้องคั่นด้วยการขึ้นบรรทัดใหม่ Rpost ไม่เปลี่ยนบทความใน
อย่างไรก็ตาม.
Rpost ใช้คำสั่ง POST เพื่อโพสต์บทความของคุณ เช่นเดียวกับโปรแกรมอ่านข่าวทั่วไป นี้
มีประโยชน์เมื่อใช้ SLIP และ PPP เนื่องจากผู้ให้บริการส่วนใหญ่ไม่อนุญาตให้ใช้วิธีอื่นในการ
โพสต์บทความ (เช่น nntpsend หรือ innxmit)
แบทช์ โหมด
โพสต์ ชื่อโฮสต์ -b ไฟล์ชุด -p อุปสรรค -d
โหมดแบตช์นี้อนุญาตให้คุณให้รายการบทความแก่ rpost และให้โพสต์ทั้งหมดได้
-b ไฟล์แบตช์
รายชื่อบทความที่จะโพสต์ พารามิเตอร์นี้จำเป็น ไฟล์นี้มี
หนึ่งบทความต่อบรรทัด โดยบรรทัดนั้นเป็นพาธไปยังไฟล์ที่มีบทความนั้น สำหรับ
ตัวอย่าง:
-b /usr/spool/news/out.going/pixi
หากมีปัญหาในการอัปโหลดบทความใดบทความหนึ่ง ไฟล์ "ล้มเหลว" จะถูกสร้างขึ้น
มันจะถูกเรียกว่า "batchfile".fail และมีบรรทัดจาก batchfile นี้สำหรับ
บทความที่อัปโหลดไม่สำเร็จ ไฟล์นี้สามารถใช้เพื่อเรียกใช้ความล้มเหลวอีกครั้ง
ข้อความผ่าน rpost หมายเหตุ: บทความที่ซ้ำกันไม่ถือว่าเป็นข้อผิดพลาดสำหรับความล้มเหลว
ไฟล์
-d
หากการอัพโหลดบทความสำเร็จ ตัวเลือกนี้จะทำให้ rpost ไปที่
ลบไฟล์แบตช์ที่มีชื่ออยู่ในตัวเลือก -b
-p คำนำหน้า
หาก batchfile ไม่มีพาธแบบเต็ม แต่มีพาธบางส่วน พารามิเตอร์นี้
ต้องระบุ สิ่งนี้มีประโยชน์เมื่อไฟล์แบตช์ถูกสร้างขึ้นโดยโปรแกรมอื่น
ตัวอย่างเช่น Inn แสดงรายการพา ธ ในไฟล์ out.going ที่สัมพันธ์กับไดเร็กทอรีฐาน
/usr/spool/news. ในกรณีนั้นเพียงแค่ใช้:
-p /usr/spool/ข่าว
ข่าว โหมด
โพสต์ ชื่อโฮสต์ -r rnews_file rnews_path
ตัวเลือกนี้ช่วยให้คุณใช้ไฟล์ที่สร้างโดย rnews เพื่อโพสต์ มันต้องสอง
พารามิเตอร์
rnews_file - นี่คือชื่อฐานสำหรับไฟล์ rnews หากคุณมีไฟล์ข่าวของคุณ
เรียกว่า batch1, batch2 เป็นต้น อาร์กิวเมนต์นี้จะเป็น "batch"
rnews_path - นี่คือพาธไปยังตำแหน่งของไฟล์ rnews
-r ชุด /usr/tmp/rnews
-d
หากการอัพโหลดบทความทั้งหมดจากไฟล์ rnews ใด ๆ สำเร็จแล้วสิ่งนี้
ตัวเลือกจะทำให้ rpost ลบไฟล์ rnews นั้นโดยเฉพาะ
FILTER โหมด
-f ตัวกรอง $$o= filter_arg1 filter_arg2 ...
ในหลายกรณี แต่ละบทความต้องได้รับการนวดก่อนที่ NNTP ระยะไกลจะยอมรับ นี้
และตัวเลือกตัวกรอง Perl ที่ฝังอยู่ด้านล่าง ช่วยให้คุณทำอย่างนั้นได้ ตัวกรองเหล่านี้ไม่ได้
ทำงานในโหมด STDIN แต่ในโหมดแบตช์และ rnews จากด้านบน โปรดทราบว่า -f ....
ตัวเลือกจะต้องเป็นตัวเลือกสุดท้าย เนื่องจากทุกอย่างที่ตามมาจะถูกส่งไปยังตัวกรอง
ยกเว้นตามที่ระบุไว้ด้านล่าง มีสามพารามิเตอร์ที่จำเป็นกับสิ่งนี้:
$$o= - เป็นชื่อของไฟล์ที่สร้างโดยตัวกรองของคุณที่จะได้รับ
อัปโหลดไปยังเซิร์ฟเวอร์ NNTP ระยะไกล นี้จะไม่ส่งผ่านไปยังโปรแกรมตัวกรองของคุณ นี้สามารถ
ระบุไว้ที่ใดก็ได้บนบรรทัดคำสั่งหลังอาร์กิวเมนต์ตัวกรอง -f ก่อน
ชื่อตัวกรองหรือหลังจากนั้น
ตัวกรอง - ชื่อของโปรแกรมที่จะโทร สิ่งที่ตามหลังตัวกรอง ยกเว้น $$o คือ
อาร์กิวเมนต์ที่ส่งผ่านไปยังตัวกรอง
arg1 - อาร์กิวเมนต์แรกสำหรับโปรแกรม/สคริปต์ตัวกรองของคุณ น่าจะเป็น $$i,
ซึ่ง rpost เติมชื่อบทความที่ต้องล้าง
arg2 ... - args เพิ่มเติมที่จำเป็นสามารถระบุได้
ขอชี้แจงนี้เล็กน้อยด้วยตัวอย่าง เซิร์ฟเวอร์ NNTP บางเครื่องไม่ชอบรับ
บทความที่มีการกรอก NNTP-Posting-Host สร้างเชลล์สคริปต์สั้น ๆ เพื่อลบสิ่งนี้
จากไฟล์:
-myscr ----------------------------------------------------
#!bin / sh /
sed -e "/^NNTP-Posting-Host/d" $1 > $2
- สิ้นสุด myscr ----------------------------------------------------
จากนั้นเรียก rpost ดังนี้:
rpost localhost -b /usr/spool/news/out.going/pixi -f myscr \$\$o=/tmp/FILTERED_MSG
\$\$i /tmp/FILTERED_MSG
ก่อนที่แต่ละบทความจะถูกอัพโหลด myscr จะถูกเรียกดังนี้:
myscr ชื่อไฟล์ /tmp/FILTERED_MSG
หลังจาก myscr เสร็จสิ้น rpost จะอัปโหลดบทความที่ล้างแล้ว เก็บไว้ใน
/tmp/FILTERED_MSG ไปยังเซิร์ฟเวอร์ NNTP ระยะไกล
หมายเหตุ:
ต้องหนี $$o และ $$i โดยใช้แบ็กสแลชด้านบนหรือซิงเกิล
เครื่องหมายคำพูด เพื่อป้องกันไม่ให้เชลล์พยายามตีความสิ่งเหล่านี้เป็นตัวแปร ความล้มเหลวในการ
หนีพวกเขาจะส่งผลให้ rpost ไม่ทำงาน!
-F ฟิลเตอร์กรอง
ตัวเลือกนี้ช่วยให้คุณใช้ตัวกรอง Perl ที่ฝังตัวเพื่อกรองบทความของคุณ ตามลำดับ
ในการใช้สิ่งนี้ คุณต้องแก้ไข Makefile และกำหนดตัวเลือก PERL_ ต่างๆ มันมี
ข้อดีสองสามข้อเหนือตัวเลือก -f ด้านบน เนื่องจากเป็น Perl ที่ฝังอยู่จึงไม่มี
forks และ excls() เสร็จแล้ว ดังนั้นควรเร็วกว่านี้ นอกจากนี้คุณไม่จำเป็นต้องกังวลเกี่ยวกับ
ข้อโต้แย้งของโปรแกรมและหลบหนี $$ ฯลฯ ตามที่กล่าวไว้ข้างต้น
Rpost จะโหลดในไฟล์ perlfilter ที่กำหนดและแยกวิเคราะห์เมื่อเริ่มต้น
ข้อผิดพลาดทางไวยากรณ์ จากนั้น สำหรับแต่ละบทความที่จะอัปโหลด rpost จะเรียกรูทีนย่อย
"perl_rpost" มีอยู่ในไฟล์ perlfilter ดูตัวอย่าง/put.news.pl ฉบับสมบูรณ์
ตัวอย่างการทำงาน มีประเด็นสำคัญสามประการที่คุณต้องระวังเมื่อสร้าง
กรอง.
1. ไฟล์ perlfilter ต้องมีบรรทัด "package Embed::Persistant;" ดังนั้น
ตัวแปรในไฟล์ perlfilter ไม่ขัดแย้งกับตัวแปร rpost และ
รูทีนย่อยต้องเรียกว่า "perl_rpost" ซึ่งสามารถเปลี่ยนแปลงได้โดยการแก้ไข
PERL_RPOST_SUB กำหนดใน suck_config.h
2. รูทีนย่อย perl_rpost รับชื่อไฟล์อินพุตเป็นอาร์กิวเมนต์เดียว และ
ต้องส่งคืนเส้นทางแบบเต็มไปยังตำแหน่งของบทความที่กรองเป็น single
สตริงสเกลาร์ (ส่งคืน $outfile)
3. รูทีนย่อยต้องปิดไฟล์เอาต์พุตอย่างชัดเจน (ประกอบด้วย filtered
อาร์กิวเมนต์) ก่อนที่มันจะกลับมา นี่เป็นเพราะว่า Perl จะทำการปิดอัตโนมัติเท่านั้น
เมื่อโปรแกรมเสร็จสิ้น (ในกรณีของเราเมื่อ rpost ออก) หรือเมื่อตัวจัดการไฟล์เป็น
ใช้ซ้ำ (ในครั้งถัดไปที่เรียกรูทีนย่อย) ถ้าปิดไม่เสร็จก็
มากกว่าจะมีไฟล์ 0 ไบต์เมื่อ rpost พยายามโพสต์บทความ
และจะเกิดข้อผิดพลาด
คำเตือน:
โปรดใช้ความระมัดระวังอย่างยิ่งกับสิ่งที่โปรแกรมตัวกรองลบออกจากบทความ ลบผิด
บรรทัดอาจมีผลเสียในภายหลัง ตัวอย่างเช่น อย่าลบบรรทัด MSG-ID เนื่องจากสิ่งนี้
อาจทำให้มีการโพสต์ข้อความเดียวหลายครั้งขึ้นอยู่กับการกำหนดค่าของ
ทั้งเซิร์ฟเวอร์ใหม่ในพื้นที่และระยะไกล
ร.ป.ภ อาร์กิวเมนต์ ไฟล์
หากคุณระบุ @filename ในบรรทัดคำสั่ง rpost จะอ่านจากชื่อไฟล์และแยกวิเคราะห์
สำหรับข้อโต้แย้งใด ๆ ที่คุณต้องการส่งต่อไปยัง rpost คุณระบุอาร์กิวเมนต์เดียวกันใน this
ไฟล์ตามที่คุณทำในบรรทัดคำสั่ง อาร์กิวเมนต์สามารถอยู่ในบรรทัดเดียวหรือกระจายออกไประหว่าง
มากกว่าหนึ่งบรรทัด คุณสามารถใช้ความคิดเห็น ความคิดเห็นเริ่มต้นด้วย '#' และไปที่จุดสิ้นสุด
ของเส้น อาร์กิวเมนต์บรรทัดคำสั่งทั้งหมดจะแทนที่อาร์กิวเมนต์ในไฟล์ ข้อดีอย่างหนึ่งของ
ใช้ไฟล์แทนบรรทัดคำสั่งคือคุณไม่จำเป็นต้องหลีกเลี่ยงพิเศษใด ๆ
อักขระ เช่น $
# ไฟล์อาร์กิวเมนต์ตัวอย่าง
-b แบตช์ # ตัวเลือกไฟล์แบตช์
-M # ใช้ตัวเลือกตัวอ่านโหมด
EXIT VALUES
Rpost ส่งกลับค่าทางออกต่อไปนี้:
0 = ความสำเร็จ
1 = เกิดข้อผิดพลาดในการโพสต์บทความ
2 = ไม่สามารถทำการอนุญาต NNTP กับเซิร์ฟเวอร์ระยะไกลได้
3 = คำตอบที่ไม่คาดคิดสำหรับคำสั่งเมื่อทำการอนุญาต NNTP
-1 = ข้อผิดพลาดร้ายแรงอื่นๆ
ใช้ rpost ออนไลน์โดยใช้บริการ onworks.net
