Score:0

นิพจน์ Rsyslog ที่มี $ชื่อโปรแกรมไม่ทำงาน

ธง ng

รับสิ่งนี้ใน rsysconf ของฉัน:

    $ template แม่แบบบันทึก,"%msg%\n"   
    $เทมเพลต DynamicLog,"%msg%\n"                                                                                                                            
    $เทมเพลต DynamicFile,"/var/log/%PROGRAMNAME%.log"    
    ถ้า ($ชื่อโปรแกรม == "ทดสอบ") ดังนั้น {local3.=debug -/var/log/path.log;TemplateLog}                                                                  
    local3.=debug -?DynamicFile;DynamicLog                                                                                                                 
    & หยุด   

ถ้าฉันเลิกใช้คำสั่ง if มันก็ใช้ได้ดี แต่ฉันจำเป็นต้องทำให้คำสั่ง if ใช้งานได้ มีอะไรผิดปกติเกี่ยวกับมัน? ขอบคุณสำหรับคำแนะนำ

ฉันพยายามเปลี่ยน == เป็นบรรจุตามที่แนะนำในคำตอบข้อใดข้อหนึ่ง ซึ่งไม่ได้ช่วยอะไร

$programname มีข้อมูลเหมือนกับ %PROGRAMNAME% หรือไม่ นี่อาจทำให้เกิดปัญหาได้ บางที...

ตามคำตอบฉันได้ทำสิ่งนี้:

$ template แม่แบบบันทึก,"%msg%\n"   
$เทมเพลต DynamicLog,"%msg%\n"                                                                                                                            
$เทมเพลต DynamicFile,"/var/log/%PROGRAMNAME%.log"           
แม่แบบ(ชื่อ="pname" type="string" string="%PROGRAMNAME%")                                                                                               
ตั้ง $!xyz = exec_template("pname");     
ถ้า ($!xyz มี 'test') ดังนั้น {local3.=debug -/var/log/path.log;TemplateLog}
local3.=debug -?DynamicFile;DynamicLog                                                                                                                 
& หยุด   

แต่น่าเสียดายที่รหัสนี้ใช้ไม่ได้เช่นกัน ถ้าฉันลบคำสั่ง if ไฟล์ DynamicFile ที่สองจะถูกบันทึกใน test.log ดังนั้นค่าจะถูกต้อง

Score:0
ธง ng

คุณสามารถพิมพ์ตัวแปรเพื่อดูผลลัพธ์ได้ตลอดเวลา ฉันคิดว่ามีบางอย่างที่เกี่ยวข้องกับไวยากรณ์ โปรดลองใช้ ประกอบด้วย แทน ==.

คุณสามารถกำหนดให้กับ var โดยใช้เทมเพลต:

    $เทมเพลต DynamicLog,"%msg%\n"                                                                                                                            
    $เทมเพลต DynamicFile,"/var/log/%PROGRAMNAME%.log"    
    แม่แบบ(ชื่อ="pname" type="string" string="%PROGRAMNAME%")
    ตั้ง $!xyz = exec_template("pname");
    ถ้า ($!xyz มี 'test') ดังนั้น {local3.=debug -/var/log/path.log;TemplateLog}                                                                 
    local3.=debug -?DynamicFile;DynamicLog                                                                                                                 
    & หยุด```
ng flag
ไม่ นี้ไม่ได้ช่วย ฉันเกือบจะแน่ใจว่ามันเป็นสิ่งที่มีไวยากรณ์ ไม่เห็นมันเลย เพราะฉันไม่ชอบสิ่งนี้จริงๆ
ng flag
พิมพ์ยังไงคะ?
Zhivko Zhelev avatar
ng flag
ตกลง ดังนั้น ```$ชื่อโปรแกรม``` และ ```%PROGRAMNAME%``` จึงไม่เหมือนกัน คุณใช้ "ชื่อโปรแกรม" เป็น var ไม่ได้
Zhivko Zhelev avatar
ng flag
ดังนั้นอาจเป็นไวยากรณ์ ```if``` ก็โอเค แต่คุณสามารถทำได้ด้วยเทมเพลต (ฉันจะแก้ไขคำตอบของฉัน)
ng flag
ขอบคุณ ! ฉันได้ปรับคำตอบเพื่อให้เป็นไปตามสถานะปัจจุบัน แต่ก็ยังใช้งานไม่ได้ :(

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา