Score:0

Rsync : รักษาวันที่หลังจากการคัดลอก

ธง cn

ฉันมีปัญหากับแอตทริบิวต์ของไฟล์เนื่องจากฉันเปลี่ยนระบบไฟล์ของบริษัทจาก Ubuntu 12 รุ่นเก่าเป็น Synology NAS

ฉันติดตั้งการแบ่งปัน NFS บนระบบไฟล์เก่าของฉัน จากนั้นใช้ cp ฉันคัดลอกทุกอย่าง ทุกอย่างเรียบร้อยดี แต่ฉันลืมที่จะรักษาแอตทริบิวต์ไว้ และเราสูญเสียโดยเฉพาะอย่างยิ่งวันที่ วันที่กลายเป็นวันที่คัดลอก ไม่ใช่วันที่จริง

ฉันพบคำสั่ง rsync rsync -vrt --size-only /src /dest แต่บางไฟล์ได้รับการแก้ไขตั้งแต่การคัดลอก และคำสั่งเขียนทับพวกเขา...

ตัวอย่างเช่น ฉันพยายามสร้างไฟล์บนระบบไฟล์เก่า คัดลอกบน synology ใหม่ จากนั้นแก้ไขไฟล์บน synology เมื่อฉันใช้ rsync ไฟล์จะถูกลบและแทนที่ด้วยเวอร์ชันเก่า

ฉันกำลังมองหาคำสั่งเพื่อคัดลอกการประทับเวลาสำหรับไฟล์เฉพาะเมื่อไฟล์มีขนาดเท่ากันเท่านั้น (ยังไม่ได้แก้ไข)

ไม่ว่าจะใช้เวลานาน

แก้ไข : ฉันลองใช้วิธีแก้ปัญหาที่เสนอด้วยไดเร็กทอรีทดสอบ ไม่มีข้อผิดพลาด แต่ไม่มีการเปลี่ยนแปลงใดๆ:

old_base=/home/samba/shares/projects/test      
new_base=/mnt/NAS  
cp $old_base $new_base -rv
        `/home/samba/shares/projects/test/1201.txt' -> `/mnt/NAS/test/1201.txt'
        `/home/samba/shares/projects/test/test.txt' -> `/mnt/NAS/test/test.txt'
        `/home/samba/shares/projects/test/1200.txt' -> `/mnt/NAS/test/1200.txt'
        `/home/samba/shares/projects/test/1202/1202.txt' -> `/mnt/NAS/test/1202/1202.txt'

ตอนนี้ฐานใหม่ของฉันเหมือนกันกับฐานเก่า แต่ไม่มีการประทับเวลาเหมือนความเป็นจริง ฉันแก้ไขไฟล์หนึ่งไฟล์ เพิ่มเนื้อหาเพื่อจำลองไฟล์ที่แก้ไขเนื่องจากฉันคัดลอกทุกอย่าง จากนั้นฉันก็ใช้วิธีแก้ปัญหาของคุณ:

    root@xx:/mnt/NAS/test# cd $old_base; หา . -ประเภท f | xargs ls -s | sort -k 2,2 >/tmp/old
    root@xx:/home/samba/shares/projects/test# cd $new_base; หา . -ประเภท f | xargs ls -s | sort -k 2,2 >/tmp/new
    root@xx:/mnt/NAS# comm -12 /tmp/old /tmp/new | ในขณะที่อ่านชื่อไฟล์ขนาด สัมผัส ${new_base}/${filename} -r ${old_base}/${filename}; เสร็จแล้ว
    comm: ไฟล์ 2 ไม่เรียงลำดับ
    comm: ไฟล์ 1 ไม่เรียงลำดับ

ฉันไม่มีข้อผิดพลาด แต่ไม่มีการเปลี่ยนแปลงใดๆ (ฉันไม่แน่ใจว่าคุณหมายถึงอะไรโดย ${filename} แต่ฉันก็พยายามแทนที่ด้วย ${new_base}/*

แก้ไข : 22/07

ฉันไม่มีผลลัพธ์ใด ๆ เมื่อฉันใช้

comm -12 --nocheck-order /tmp/old /tmp/new
cn flag
comm ไม่ทำงานเนื่องจากกำลังค้นหาไฟล์ที่จะแก้ไขโดยฟิลด์แรก คุณ *อาจ* สามารถใช้แฟล็ก --nocheck-order เพื่อสื่อสารหรือดูการใช้คำฟุ่มเฟือยเพิ่มเติมในคำตอบของฉัน
Score:0
ธง cn

สรุปวิธีการดำเนินการ: แสดงรายการลำดับชั้นทั้งสองลงในไฟล์ที่มีขนาด จัดเรียงและเปรียบเทียบขนาดไฟล์ด้วย "comm -12" เพื่อให้รายชื่อไฟล์ที่มีขนาดเท่ากันทุกประการ จากนั้นคุณสามารถสร้างรายการการประทับเวลาและเปรียบเทียบ หรือป้อนรายการนั้นลงในคำสั่ง "touch -r" เพื่อทำซ้ำการประทับเวลา โปรดอย่าตัดและวางคำสั่งเหล่านี้สุ่มสี่สุ่มห้า ตรวจสอบให้แน่ใจว่าคุณเข้าใจสิ่งที่พวกเขากำลังพยายามทำ

การดำเนินการนี้ไม่ควรใช้เวลานาน เว้นแต่ว่าคุณจะมีไฟล์จำนวนมาก

คำสั่งง่ายๆ (ยังไม่ได้ทดสอบ) ที่ควรช่วย:

old_base = ไดเร็กทอรีฐานของลำดับชั้นที่มีไฟล์เก่า การประทับเวลาที่ต้องการ

new_base = ไดเร็กทอรีฐานของลำดับชั้นที่มีไฟล์ใหม่ การประทับเวลาที่ไม่เหมาะสม

ซีดี $old_base; หา . -ประเภท f | xargs ls -s | ในขณะที่อ่านชื่อไฟล์ขนาด ทำ echo "${filename} ${size}"; เสร็จแล้ว | เรียงลำดับ >/tmp/old_list

ซีดี $new_base; หา . -ประเภท f | xargs ls -s | ในขณะที่อ่านชื่อไฟล์ขนาด ทำ echo "${filename} ${size}"; เสร็จแล้ว | เรียงลำดับ >/tmp/new_list

ลองทำเฉยๆ คอม -12 /tmp/old_list /tmp/new_list และดูที่ผลลัพธ์ หากไม่ใช่ชื่อไฟล์ที่ต้องเปลี่ยนการประทับเวลา เราต้องหาสาเหตุให้ได้

คอม -12 /tmp/old_list /tmp/new_list | ในขณะที่อ่านชื่อไฟล์ขนาด สัมผัส ${new_base}/${filename} -r ${old_base}/${filename}; เสร็จแล้ว

Mmmax avatar
cn flag
ฉันไม่เข้าใจ เพราะฉันมีไฟล์หลายล้านไฟล์ 6TB new_base คืออะไร Synology nfs แบ่งปัน?
cn flag
ฉันจะแก้ไขโพสต์ของฉันเพื่อให้บริบทเพิ่มเติม
Mmmax avatar
cn flag
ฉันแก้ไขโพสต์ของฉันด้วยผลลัพธ์ของความพยายามของฉัน
cn flag
ดีมากที่จะทำกรณีทดสอบก่อน Mmmmax
Mmmax avatar
cn flag
ฉันเพิ่ม -nocheck-order ในคำสั่ง comm ตอนนี้ฉันไม่มีข้อผิดพลาดใด ๆ ไม่ส่งคืน แต่ไม่มีการเปลี่ยนแปลงใด ๆ ในโฟลเดอร์ทดสอบของฉัน
cn flag
@mmmax.ดูโพสต์ (แก้ไข) ของฉัน ลองเพียงแค่ "comm -12 /tmp/old_list /tmp/new_list" และดูว่าคุณได้รับอะไรหรือไม่
Mmmax avatar
cn flag
ไม่มีผลลัพธ์ด้วยคำสั่งนี้ (โพสต์เริ่มต้นแก้ไข)
cn flag
@Mmmax โปรดลองดูว่าคำแนะนำของฉันหมายถึงอะไรและกำลังพยายามทำอะไรอยู่ ทั้งสองรายการออกมาถูกต้องหรือไม่? คอมมูรายงานข้อผิดพลาดหรือไม่? คุณแจ้งปัญหาที่น่าสนใจ และฉันอยากช่วย แต่คุณต้องให้เวลาฉันทำงานมากกว่านี้เพื่อช่วยเหลือคุณ

โพสต์คำตอบ

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