SCP (Güvenli Kopyalama) kullanırken Çift Dosyaları Yeniden Adlandır


2

Dosyaları ağımdaki sunucular arasında taşımak için scp kullanıyorum ...

scp /folder/file user@<ip address>/User/Documents/Transfer

... ancak yinelenen dosyaların üzerine yazmak istemiyorum. Hedef klasörde adı alınmış olan dosyaları yeniden adlandırmanın bir yolu var mı?

Örneğin, hedef klasörde file.txt zaten mevcutsa, yeni file1.txtisimlendirilecek file1-1.txtve sonraki sürümler file1-2.txtvs. olacaktı .

Dosya adlarının formatı kesin değil, sadece aktarmadan önce dosyaları manuel olarak yeniden adlandırmak istemiyorum ve önemli verileri kaybetmek istemiyorum.

Yanıtlar:


3

Bunu scpyalnız başınıza yapamayacağınıza inanıyorum . Yapabileceğiniz en iyi şey kullanmak olacaktır rsyncüzerinde sshaşağıdaki ek seçenekleri gibi bir şey ile:

--backup --suffix=_`date +"%m%d%Y_%H%M"` --backup-dir=DIR

Man sayfalarının bazı ilgili bölümleri rsync:

-b, --backup
   With this option, preexisting destination files are renamed as  each  file  is
   transferred  or  deleted.  You can control where the backup file goes and what
   (if any) suffix gets appended using the --backup-dir and --suffix options.

--suffix=SUFFIX
    This option allows you to override the default backup  suffix  used  with  the
    --backup  (-b) option. The default suffix is a ~ if no --backup-dir was speci-
    fied, otherwise it is an empty string.

--backup-dir=DIR
     In combination with the --backup option, this tells rsync to store all backups
     in the specified directory on the receiving side.  This can be used for incre-
     mental backups.  You can additionally specify a backup suffix using the --suf-
     fix option (otherwise the files backed up in the specified directory will keep
     their original filenames).

Bu ihtiyaçlarınızı karşılamak için masaj yapabilmelidir. Aşağıda temel bir testtir, eklemek için ssh dahil diğer seçeneklere sahip olacağınız şüphesizdir:

rsync -av --backup --suffix=_`date +"%m%d%Y_%H%M"` --backup-dir=backup test1/ test2/

Yani bu yerinde:

  1. Bir dosya aktarılır test1içintest2
  2. Bu dosya zaten mevcutsa test2ancak aktarılan dosya daha yenise , 'uzak' dosya güncellenir ve daha önemlisi:
  3. Orijinal dosya, artımlı bir tarih ve zaman eki eklenerek test2yedeklenirtest2/backup

Oldukça havalı? Ve tam olarak aradığınızı şüpheleniyorum. Yedekleme dizini için göreceli bir yol kullandığımı unutmayın, mutlak bir yol da kullanılabilir ...


Şampiyon! Bu benim için yapacak. Şerefe
spcurtis81
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.