Egy Windows 10-es megosztott mappába érkező állományokat szeretnék villámgyorsan egy másik mappába átmozgatni. Hogyan lehet ezt a legegyszerűbben megoldani?
- 1981 megtekintés
Hozzászólások
Van file system change listener szolgáltatás Windowsra is, azzal lehet nyomulni. Megosztott folder esetén szerintem csak a szerveren működik, a klienseken nem.
Én programot írnék rá például Java-ban ezzel az API-val: https://docs.oracle.com/javase/7/docs/api/java/nio/file/WatchService.ht…
De hogy milyen nyelven csinálod, az nyilván ízlés kérdése.
- A hozzászóláshoz be kell jelentkezni
Nem, rohadtul nem ízlés kérdése a nyelv, ha nem natív kódot fordítasz belőle. Java?! Miért ne élből Node.js? Sőt, lehet bashból is, ahhoz nem is kell telepítgetni, elég bekapcsolni a WSL-t:
inotifywait -m /mnt/megfigyelt_könyvtár -e create -e moved_to | while read path action file; do mv "$path/$file" /mnt/célkönyvtár; done
(tudom, nem jó, ha space van a megfigyelt könyvtár útvonalában)
Egyébként: https://gallery.technet.microsoft.com/scriptcenter/Powershell-FileSyste…
- A hozzászóláshoz be kell jelentkezni
Erőforrásigényről nem beszéltünk :-). Ízlés kérdése is a nyelv, manapság (Hajbazer dont like this) a legfontosabb kérdés, hogy mennyi idő alatt csinálod meg a feladatot, nem az hogy mennyi memóriát eszik. CPU-val meg Javaval is ideális-közeli lesz. A JRE-t mellétéve megáll 100MB alatt a megoldás és még telepíteni(TM) sem kell, és egész kis heap-pel is el lehet indítani, a runtime RAM foglalás is mondjuk lesz 100MB.
Valóban sokkal több, mint ami elvileg kellene neki, de adott esetben simán beleférhet.
- A hozzászóláshoz be kell jelentkezni
És amikor csak felületesen ismeri az ember az "ideális nyelvet", akkor előfordulnak olyan mellékhatások, mint a szóközök (nem) kezelése :)
Ami az első hibánál/adatvesztésnél derül ki.
- A hozzászóláshoz be kell jelentkezni
"(tudom, nem jó, ha space van a megfigyelt könyvtár útvonalában)"
- A hozzászóláshoz be kell jelentkezni
Mert a Powershell dotnet alapon annyira hű de natív?
Én mondjuk nem haragszom se a Java-ra se a dotNetre és aki meg nem hajbazi, ne vegye magára.
- A hozzászóláshoz be kell jelentkezni
Arra próbáltam célozni, hogy ott van. Nem kell mellé semmi, egyetlen script, oszt'jónapot.
- A hozzászóláshoz be kell jelentkezni
Nem ez jött át, hanem az, hogy hűdeszagértő vok ésjólkiosztomajaváskiscsávót. Az hogy előre van telepítve, jó pont a PS-.net párosnak, de ha valaki jobban boldogul Java-ban, nem kéne leugatni, amúgy még telepíteni se kell, van nem hivatalos, de jól működő portableJRE, oda másolod, ahova akarod, ha nem csinál valami speckót, admin jog se kell neki.
- A hozzászóláshoz be kell jelentkezni
Nem ugattam le, csak (igaz, kissé szarkasztikusan) megjegyeztem, hogy ágyúval verébre, és vele ellentétben én belinkeltem egy komplett forrást (amihez nem kell még portable JRE sem, csak a powershell, ami biztosan fent van a gépen).
Mellesleg rohadtul nem vagyok szakértő, mindössze beírtam a Googlenak, hogy "file watch powershell" (mert bár életemben talán ha ötször használtam powershellt valamire, és a hideg is kiráz tőle, de attól még egy egyszerű windowsos admin feladatra általában lehet megoldást találni benne), és lőn: nálam az első helyen hozta a fenti linket a Google.
(Egyébként igen, én Windowson a Powershellt dotnet alapon natívnak tekintem.)
- A hozzászóláshoz be kell jelentkezni
Az inotifywait egyébként nem a Powershell része, hanem egy önálló alkalmazás, tehát a nyitóposztban írt kitétel a helyes: WSL kell neki csak. Mivel a Linux inotify API-t használja, amit a WSL megvalósít, ezért működik Windowson is. És valóban sokkal kevesebbet "fogyaszt".
A valódi programokat egyébként éppen azért szeretem jobban, mint a szkripteket, mert a szélsőséges eseteket jobban le lehet kezelni. Például a valaki által említett space van a path-on esetet ritkábban rontjuk el programban, mint szkriptben. Vagy egy másik gyakori dolog, hogy mi történik, ha egyszerre történik több minden? Programban is el lehet rontani ezeket, de legalább hibaeset alapján meg is lehet javítani, míg szkriptek esetén könnyebb zsákutcába futni. De ezek csak általános tapasztalataim, ami erre az esetre nem feltétlenül áll.
Példa: Alapértelmezetten üres a folder, és mindig teljesen kiürítjük, majd indítjuk az inotifywait-et. Mi van, ha az inotifywait indítása után, de elindulása (idő mire felkerülnek a listenerek) előtt odakerül egy file? Nem jön esemény. Szkripttel elég kellemetlen megcsinálni, bár meglehet, hogy mondjuk indítás után 1 másodperccel még egyszer ellenőrzöd egy másik "szálon", hogy került-e oda valami? Programból viszont (ha jól emlékszem) kapsz értesítést, hogy felkerültek a listenerek, akkor azonnal lefuttathatsz egy plusz csekkolást. Ezen "quirk"-ek egyébként dokumentáltak a Java-s API-n, amit linkeltem. (Régen olvastam, csak rémlik, de elég biztos vagyok benne.)
Az esetek 99.999%-ában persze ebből nem jön elő hiba, de éppen az a minőségi programok védjegye, hogy az ilyen faramuci esetekre is fel vannak készülve.
- A hozzászóláshoz be kell jelentkezni
A kódsorom bash, semmi köze a powershellhez, csak demonstráltam, hogy ha extrémkedni akarok, megoldható WSL-en keresztül is.
Powershell scriptben pedig nem okoz gondot a space a fájlnévben.
Nem használok Powershellt, de .NET-et elég sokat, és a PS fswatchere a .NET-ét használja, ott pedig simán felveszem a watchert nem figyelő állapotban, hozzárendelem az eseményeket, aztán jöhet EnableRaisingEvents=true, tehát a linkelt példa is simán átalakítható, hogy a watcher ne induljon el, csak az események regisztrálása után.
- A hozzászóláshoz be kell jelentkezni
Csak a history kedvéért: Már a Sun idejétől kezdve a JRE simán redistributolható a programoddal együtt, valahol le van írva, hogy szabad, akár fizetős program esetén is. Csak ki kell másolni a JRE könyvtárat, és működik akár pendrive-ról is. Még azt is megteheted, hogy néhány komponenst kihagysz (ennek mikéntje is le van írva), hogy kisebb legyen. Teljesen hivatalos.
- A hozzászóláshoz be kell jelentkezni
Úgy rémlett, hogy az Oracle belekavart ebbe, is.
- A hozzászóláshoz be kell jelentkezni
Hoppá... Benéztem volna valamit? Legalább még nem perelnek :-)
- A hozzászóláshoz be kell jelentkezni
Jaja, egy fél Ubuntut lerántani sokkal takarékosabb mint egy skeleton JRE, mi az a kb 600 mega, amit a "csak be kell kapcsolni" WSL használ. ;)
- A hozzászóláshoz be kell jelentkezni
Nem kötekedés, tényleg érdekel. A -e create event akkor triggelődik amikor a fájl létrejön, vagy amikor az írás befejeződött és be is van zárva?
- A hozzászóláshoz be kell jelentkezni
Nem, az a létrehozás pillanatában triggerelődik, aztán jön(nek) az OnChange(-ek).
- A hozzászóláshoz be kell jelentkezni
Ez esetleg: https://www.youtube.com/watch?v=9KXo6yOhTWo ?
Honlap: https://freefilesync.org/
- A hozzászóláshoz be kell jelentkezni
Megnézem, köszi!
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
én robocopy-t használok hasonló dologra (igaz nem 10-en hanem 7-en)
esetleg nézd meg neked megfelel e?
(http://www.mikrobit.hu/content/robocopy-rsync-windows-alatt)
- A hozzászóláshoz be kell jelentkezni
:) Ezt kerestem, csak az istenért nem jutott az eszembe... Köszi!
- A hozzászóláshoz be kell jelentkezni
Én ezt használom rá:
http://www.dropitproject.com/
- A hozzászóláshoz be kell jelentkezni
Nagyon köszi, megnézem!
- A hozzászóláshoz be kell jelentkezni
Symlink?
- A hozzászóláshoz be kell jelentkezni
Mi a cél? illetve define villámgyorsan
--
"After successfully ignoring Google, FAQ's, the board search and leaving a undecipherable post in the wrong sub-forum don't expect an intelligent reply."
- A hozzászóláshoz be kell jelentkezni
A cél: a tanár (desktop) gépén lévő megosztott mappába másolják a csemeték a munkáikat. A cél, hogy egymás munkáját ne lássák, ne tudják letölteni és sajátjukként visszatölteni.
- A hozzászóláshoz be kell jelentkezni
Lehetne webes feluleten torteno feltoltes is, nem nagy dolog osszedobni erre, amikor labort tartottam anno, nekem is igy volt megoldva. (raadasul eltarolta a feltolto IP-jet, es a feltoltes idejet is, szoval ha javitott rajta, az is latszott)
Amugy a diakok - ettol meg - meg fogjak osztani egymassal, max. automatikusan nem fogjak latni a feltoltottet.
--
When you tear out a man's tongue, you are not proving him a liar, you're only telling the world that you fear what he might say. -George R.R. Martin
- A hozzászóláshoz be kell jelentkezni
Ó, a régi szép idők, amikor lehetett még csak írható ftp-t konfigurálni...
- A hozzászóláshoz be kell jelentkezni
te, es akkor mivan ha RENDESEN beallitod a FS jogosultsagokat?
odaszarja a munkajat, aztan lathatja mindenki a sajatjat....
- A hozzászóláshoz be kell jelentkezni
Ezt úgy lehet, hogy a tanulóknak egyesével külön könyvtáruk van a szerveren, és oda csak ők tudnak írni.
Ez feltételezi, hogy van mindenkinek egy saját Windows fiókja.
- A hozzászóláshoz be kell jelentkezni
Be tudod állitani az NTFS Audit-ot egy könyvtárra:
https://docs.microsoft.com/en-us/windows/security/threat-protection/aud…
Változás esetén egy eventlog bejegyzést tesz, ami triggerelhet:
https://social.technet.microsoft.com/Forums/windows/en-US/b4604ee4-03b2…
egy robocopy scheduled task-ot:
https://docs.microsoft.com/en-us/windows-server/administration/windows-…
- A hozzászóláshoz be kell jelentkezni
Ezzel szerintem megint az lesz a baj, hogy bőven lehet, hogy épp írás közben másolja-mozgatja a cuccot, ami vagy sikerül neki, vagy nem.
- A hozzászóláshoz be kell jelentkezni
start-sleep 5;
De inkább alkönyvtár jogosultsággal játszanék.
- A hozzászóláshoz be kell jelentkezni
Hát jah, én meg webes feltöltögetővel, mert az van készen :)
- A hozzászóláshoz be kell jelentkezni