Gecelik program olarak Windows'tan Unix'e bir dosya gönderin


1

I gibi, bir Windows sunucu üzerinde ortak bir dizin var diyelim: \\servername\location\common. Gün boyunca herhangi bir kullanıcı gelip bu Windows dizinine dosya ekleyebilir / silebilir.

Bu dizindeki tüm dosyaları önceden tanımlanmış bir yolda (değişmeyen) bir Unix sunucusuna aktarmak için nasıl bir gece programı (her zaman 9:00) ayarlarım?

Herkesin bildiği gibi şifreleri gizlemek konusunda endişelenmiyorum.

  • Bunu yapmak için iyi bilinen bir senaryo var mı?
  • Değilse, bunu nasıl uygulayabileceğime dair bir ipucu var mı?

Bat dosyaları ve kabuk hakkında biraz bilgim var.


Transfer nasıl? FTP, SMB ...?
m0skit0

@ m0skit0 - bu sorunun bir parçası, ben optinos için açığım
saat

Dosyalar metin mi, ikili mi?
m0skit0

metin (
ascii'nin

İçeriği değiştiren dosyalar mı yoksa tamamen yeni dosyalar mı var?
m0skit0

Yanıtlar:


3

Dosyalarımı SFTP / SSH üzerinden göndermek için ya "AlwaySync" gibi ücretsiz bir yazılım kullanırdım. Veya uzaktaki sistemde bir ISCSI / SMB paylaşımı kurar ve bu şekilde yedeklerdim. Veya Cygwin'i kurar ve Linux sunucusuna bir cron üzerinde yedekleme yapmak için rsync'i kurardım.

Bunlar sadece beyin sularının akması için kullanılan kavramlar!


Daha fazla ayrıntı ve öneride bulunabilirsiniz eğer kepçe için lütuf.
saat

3

Bu bir Windows görevi ve WinSCP kullanılarak yapılabilir.

İlk önce, gidip WinSCP http://winscp.net/eng/index.php dosyasını yükleyin. Kurulduktan sonra Yeni'ye tıklayın, ardından sunucunuz için bilgi girin. Anahtar kullanıyorsanız, anahtar dosyalarını bulun, aksi takdirde şifreyi girin. Kaydet düğmesine tıklayın. Açılan iletişim kutusunda, anahtar dosyaları kullanmıyorsanız "Şifreyi kaydet" i işaretlediğinizden emin olun. Seçtiğiniz profil adını unutmayın.

Sonraki Bir dosya oluşturun, dosyaya config.txtWinSCP'yi yüklediğiniz yere aşağıdakileri ekleyin, ** yerine geçenleri ** ile değiştirin.

option batch on
option confirm off
open *NAME OF PROFILE* synchronize local -mirror *Local path: \\servername\location\common* *Remote Path*
exit

Basın Windows Key + R

Sonra taskschd.msc /sTamam'ı tıklatın. Açılan pencerenin sağ tarafında Create Task...bir Ad Girin'i seçin : Folder Auto Upload(veya size uygun olanı seçin )

TriggersSekmeye tıklayın ve ardından Radyo düğmesini Newseçin seçeneğine tıklayın Daily. Bir zaman listelenir, Yüklemenin gerçekleşmesini istediğiniz zamanı ayarlayın. ClickOK

Tıklayın Actionssekme tıklama Newwinscp.exe konumunu girin Program / script alanında (ya da daha kurulumunu yere gözatın ve seçin.) Ekleyin argümanlar içinde (opsiyonel): alanına girin /console /script=config.txtardından OKtıklayın OKtekrar ve gerektiği her şey yolunda olsun.


2

Macunu yükleyebilir ve pscp'yi zamanlama görevleriyle kullanabilirsiniz. Güvenlik bir öncelik değilse, Windows'taki yerleşik ftp istemcisiyle aynı şeyi yapabilirsiniz.

Benim durumumda unix araçlarının gow dağılımından macun ve pscp kullanıyorum

Temel bir dosya aktarımı dizinin tamamı olacaktır 'pscp -pw password -r "yolu / dizin / kaynak /" username@server.tld: / yol / dizin / hedef / "gibi bir şey olurdu - bu yaklaşımla ilgili bazı sorunlar var şifrenizi düz metin olarak kullanmak gibi

Pagent kullanmak daha iyi bir yaklaşım olacaktır - bunu ayarlamanız ve -pw şifresini -agent ile değiştireceğinize inanıyorum.

IIRC rsync rota deltakopi gitmek istiyorsanız iyi bir seçenek olabilir, artımlı backupsh zamanlanmış


fikirler için teşekkürler. Fikir yedekleme yapmak yerine, bu dosyalarda bulunan bazı SQL'leri unix sunucusuna karşı çalıştırmaktır.
12'de

Bu durumda, cygwin scp olduğundan daha iyi bir seçenek olabilir ve daha kolay komut dosyası yazmak için bir cli ssh istemcisi olabilir
Journeyman Geek

Daha fazla ayrıntı ve öneride bulunabilirsiniz eğer kepçe için lütuf.
saat

Cevap verdi, pagent konusunda istediğim gibi test edilmedi.
Journeyman Geek

1

SMB üzerinde mevcut olan bir şey olduğundan, bunu Unix tarafından ele alacağım. Bu, transferini gerçekleştiren (muhtemelen root olmayan bir kullanıcı hesabı kullanarak) bir cron işi kuracağım anlamına gelir.

  • rsnapshot - bu iyi bir yedekleme aracıdır (ve cron'un nasıl kurulacağına dair talimatlarla birlikte gelir)
  • rsync - eğer probleminiz yedekleme yerine dosya senkronizasyonu ise.

1

Klasörü ve dosyayı Windows'ta paylaşabilirsiniz. Linux'a Samba'yı kurun ve klasörü monte edin ve gerektiğinde dosyaları aktarmak için linux'ta bir cron işi çalıştırın


1

Metin / script dosyaları olsaydı, SVN, GIT veya Mercurial gibi bir versiyonlama sistemine giderdim. Bu şekilde, sunucu çok yüklenmez (yalnızca dosyalar arasındaki farklar korunur) ve her senkronizasyon işlemi arasındaki farkları kolayca kontrol edebilir ve hatta kimin / ne zaman neyin değiştirildiğini ve hatta neyin değiştiğini bilebilirsiniz. Ayrıca her senkronizasyon işlemine yorum ekleyebilirsiniz, bu kesinlikle çok faydalıdır.


Dosyaları svn ve unix sunucusundaki belirli bir dizin arasında nasıl aktarırsınız?
saat

SVN sunucusu UNIX sunucusunda olacaktır, orada dosyaları saklamak istediğiniz herhangi bir dizini belirtebilirsiniz. SVN istemci tarafında, yalnızca bu SVN deposunu ve tüm değişiklikleri (ve yalnızca değişiklikleri) kabul eden bir SVN yaparsınız. Sunucuya güncellenerek, daha hızlı ve daha az bant tüketimi ile (ve ayrıca isteğe bağlı yorumlarla) yüklenir. İstediğiniz zaman otomatik olarak istediğiniz görevi yapmak için Windows görevi olarak programlanabilen, SVN komut satırı istemcisini kullanan yalnızca bir satırdır.
m0skit0

1

Bence rsync gitmenin tek yolu - yapmak istediğiniz şey bir dosya sistemindeki bir dizini bir başkasına senkronize etmek ve bunu en güvenilir şekilde yapma aracı rsync. Bunu daha fazla haklı çıkarmaya çalışmak için rsync projesinin tarihine bakmanın iyi olduğunu düşünüyorum - 1996'da kuruldu, unix topluluğu genelinde sürekli olarak geliştirildi ve kullanıldı. Bu son sürüm 2008’deydi - bu, son 4 yıl boyunca iki dizini senkronize etmek için mükemmel bir işe yaradığı anlamına geliyor. Öyleyse soru bunun nasıl kurulacağı.

Bunun çok yaygın bir şey olması gerektiğini düşündüm, bu yüzden hızlı bir google’a sahiptim ve yığın taşma konusunda çok iyi bir yazı ortaya çıkardım - rsync kullanan samba paylaşımları için bash yedekleme betiği . Gerekli adımları çoktan aklımda tuttum (aşağıda ana hatlarını vereceğim) ancak senaryo günlük dosyaları oluşturarak, çoklu paylaşımlarla, bağlantısız dosya sistemlerini kurarak vb. bu gerçekten harika bir senaryo. Yapmanız gereken tek şey, Windows paylaşımına ilişkin dizinleri / ip adresini ve dosya ve günlüklerin hedefini içerecek şekilde değiştirmek.

Geriye kalan tek şey betiği saat 9'da çalışacak şekilde programlamak. Bu cron veya crontab ile yapılabilir - Bunu nasıl yapacağınızdan emin değilseniz cron veya crontab eğitimini okuyun .


RSync kurmak için root erişimine ihtiyacım var mı, yoksa bazı Linux dağıtımlarında paketlenmiş mi?
12'de

rsync genellikle hem masaüstü hem de sunucu sürümlerinin standart kurulumlarıyla kurulur. Eğer dağıtımın minimal kurulumunu seçtiyseniz, rsync, zorunluluktan uzaktır, bu nedenle kurulmaması muhtemeldir.
James
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.