Jak zastąpić plik docelowy netcatem zamiast dodawać?

1

Mam dwa serwery Ubuntu i będę używać skryptu (chociaż go jeszcze nie napisałem) na serwerze wysyłającym, aby wysyłać plik abcd.txt za każdym razem, gdy zmienia się przy użyciu:

    nc 10.10.10.4 3333 < abcd.txt

Na serwerze nasłuchującym używam opcji -k, aby stale nasłuchiwał:

    nc -k -l 3333 > /home/abcd.txt

Moim celem jest nadpisanie pliku na serwerze nasłuchującym za każdym razem, gdy serwer wysyłający wysyła plik. To się nie dzieje. Zamiast tego dołączany jest cały plik, w wyniku czego powstają powielone linie. Czy istnieje sposób, aby to naprawić? Jestem otwarty na opcje niż przy użyciu netcata, ale mam bardzo małe doświadczenie z Linuksem. Traktuj mnie jak początkującego.

Zauważ też, że nie mogę użyć polecenia sort ani uniq, aby zmienić plik abcd.txt, gdy dotrze on do serwera nasłuchującego, ponieważ pliki są bardzo duże i narzucone są ograniczenia czasowe. (Prawdopodobnie plik po stronie wysyłającej będzie się pojawiał co 60 sekund).

Preston Roy
źródło
To może być pomysł, w który facet z Linuksem mógłby ci pomóc, ale ze strony systemu Windows, jeśli istnieje polecenie (lub usługa), którego muszę użyć, dołącza się, gdy potrzebuję nadpisania, wtedy obliczyłem pewne reguły w tym procesie, a zwłaszcza jeśli jest zautomatyzowany i wykonuje takie [standardowe] potężne rzeczy, jak to. Teraz, jeśli zdarzenia te mogą być wyzwalane wiele razy w ciągu sekundy, być może będziesz musiał skalować się poza reguły i uczynić je bardziej złożonymi. Zakładam ograniczenie netcat i twoja metoda korzystania z niego jest tym, na czym polega problem, więc są to moje szybkie przemyślenia, ponieważ strona man nic nie powiedziała o nadpisywaniu parametrów itp.
Pimp Juice IT
Sprawdź, czy jest możliwe, aby nadawca wysłał abc.txtdo nasłuchiwacza, a następnie usuwa, abc.txtgdy potwierdzi otrzymanie nasłuchu itp. Słuchacz umieszcza zamiast tego abc.txtdane, które właśnie otrzymał od nadawcy /home/temp.txt(może wstawić logikę if temp.txt exist del temp.txtlub dołączyć <YYYYMMDD_hhmmsst>znacznik czasu do pliku tymczasowego nazwa, więc każda ma unikalną nazwę). Następnie usuwa /home/abc.txtjeśli istnieje, a następnie zmienia nazwę /home/temp.txtna /home/abc.txtlub tworzy nowy plik o zawartości pliku tymczasowego lub jakkolwiek byś sobie z tym poradzić z Linuksem. Tylko szybkie pomysły.
Pimp Juice IT,