Score:0

เราจะทราบได้อย่างไรว่ากำหนดการ rsync อยู่ที่ไหน และเราจะกำหนดเวลาใหม่ได้อย่างไร

ธง cn

เราจะทราบตำแหน่งที่ตั้ง rsync ได้อย่างไร ฉันมี rsync ที่ทำในเซิร์ฟเวอร์ A ถึงเซิร์ฟเวอร์ B และฉันต้องค้นหาในเซิร์ฟเวอร์ A ที่เรียก rsync และตำแหน่งและวิธีกำหนดเวลา มีไฟล์สำหรับสิ่งนี้ที่ตั้งค่าคอนฟิกเหมือน cronjobs หรือไม่ ฉันมีปัญหาด้านประสิทธิภาพบางอย่างในเซิร์ฟเวอร์ B และฉันจำเป็นต้องจัดกำหนดการ rsync ใหม่เพื่อให้เกิดขึ้นนอกชั่วโมงเร่งด่วนเท่านั้น

in flag
ฉันอาจจะเริ่มด้วยอะไรง่ายๆ เช่น `grep 'rsync' -R /etc /var/spool/cron /var/log` สมมติว่างานหรือสคริปต์มีชื่อ 'rsync' ซึ่งน่าจะพบรายการบันทึก cron หรือ crontab หรืออาจเป็นสคริปต์ หากคุณรู้ว่าจะเริ่มทำงานเมื่อใด คุณสามารถดูบันทึกของคุณและดู cron ที่กำลังทำงาน โดยถือว่า cron กำลังทำงานอยู่
Score:2
ธง pt

น่าเศร้าที่ rsync ไม่ได้บันทึกที่ไหนสักแห่งโดยอัตโนมัติทุกครั้งที่มีการใช้งาน จะต้องทำงานนักสืบบางอย่าง

ทางออกที่ดีคือ rsync กำลังเรียกใช้จาก "cron" ที่ไหนสักแห่ง (cron คือระบบที่เรียกใช้บรรทัดคำสั่งหรือสคริปต์เป็นระยะ ตัวอย่างเช่น ฉันมีงาน cron รายชั่วโมงที่อัปเดตฐานข้อมูล และงาน cron รายวันที่เรียกใช้สคริปต์สำรองของฉัน)

ครอน (อันที่จริง ครอนด์) เก็บบันทึกของคำสั่งทั้งหมด ("งาน") ที่เรียกใช้ /var/log/cron. (ระบบ Unix/Linux บางระบบวางไว้ในตำแหน่งอื่น ตรวจสอบหน้า man) คุณทำได้ แมว ไฟล์นั้นเพื่อตรวจสอบ (เป็นไฟล์ข้อความ)

การกำหนดค่าของ Cron ถูกเก็บไว้ใน /etc หรือ /var/spool/cron หรือทั้งสองอย่างขึ้นอยู่กับระบบ Unix/Linux ของคุณ หน้าคนจะช่วยเช่นเดียวกับการทำบางอย่างเช่น

ค้นหา /etc /var -name '*cron*'

คุณสามารถค้นหา rsync ในไฟล์เหล่านั้นได้โดยทำสิ่งต่อไปนี้

grep rsync -R /etc /var/spool/cron

อย่างไรก็ตาม งาน cron อาจเรียกสคริปต์ที่เรียกใช้ rsync ชื่อสคริปต์นั้นอาจไม่มีตัวอักษร "rsync" อาจเรียกว่า "สำรองข้อมูล" หรือ "อัปเดต" หรืออาจตั้งชื่อตามระบบที่ข้อมูลนั้นถูกพุชหรือดึงออกมา

หากระบบของคุณใช้ "systemd" มีโอกาสที่จะถูกเรียกใช้งานจากที่นั่น ตรวจสอบการกำหนดค่าเหล่านั้นด้วย grep / ฯลฯ เรียกซ้ำ

หากไม่ได้ผล มีสอง "โหมดสิ้นคิด" ที่คุณสามารถทำได้

  1. ลบ รีซิงค์ คำสั่งบังคับให้สำรองข้อมูลล้มเหลว ข้อความแสดงข้อผิดพลาดอาจปรากฏในอีเมล (cron ส่งอีเมลถึงเจ้าของงานเมื่อมีข้อผิดพลาด) หรือใน syslog คุณสามารถทำได้:
mv /usr/bin/rsync /usr/bin/rsync.NOT
#อดใจรออีกนิดจะเป็นไรไป

#คืนการเปลี่ยนแปลง
mv /usr/bin/rsync.NOT /usr/bin/rsync
  1. แทนที่ rsync ด้วยสคริปต์ตัวตัดคำที่บันทึกสิ่งที่กำลังทำ จากนั้นเรียก rsync จริง

สร้างไฟล์ชื่อ /usr/bin/rsync.wrapper ซึ่งประกอบด้วย:

#!/bin/sh
เสียงสะท้อน "$@" >>/var/tmp/my.rsync.log
pwd >>/var/tmp/my.rsync.log
ผู้บริหาร /usr/bin/rsync.REAL "$@"

ตอนนี้ติดตั้ง wrapper:

แตะ /var/tmp/my.rsync.log
chmod a+w /var/tmp/my.rsync.log
chmod a+rx /usr/bin/rsync.wrapper
mv /usr/bin/rsync /usr/bin/rsync.REAL
ln -s /usr/bin/rsync.wrapper /usr/bin/rsync

เมื่อคุณทำเสร็จแล้ว ให้ย้อนกลับการเปลี่ยนแปลงเหล่านั้นด้วย

rm /usr/bin/rsync
mv /usr/bin/rsync.REAL /usr/bin/rsync

FYI: ฉันไม่แนะนำแนวคิด 2 ข้อสุดท้ายนี้ (การลบ rsync โดยใช้ wrapper) พวกมันอันตรายและอาจทำให้ระบบของคุณยุ่งเหยิง อย่างไรก็ตาม หากวิธีอื่นๆ ล้มเหลว โซลูชันกระดาษห่อควรทำตามเคล็ดลับ!

โพสต์คำตอบ

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