Pomoc Hot folder i filtrowanie wg nazwy - skrypt, rozwiązania

mkupiec

Nowy użytkownik
Noobie
26 Luty 2025
2
0
1
37
QNAP
null
Ethernet
1 GbE
Szukam osoby, która za kasę wykona dla mnie skrypt. - skrypt może pozostać publiczny

Opis problemu:


Skrypt powinien monitorować jeden folder, do którego wrzucam pliki .pdf

Pliki te docelowo skrypt sortuje i przenosi w 3 odrębne miejsca (inny serwer, inne ip, który czasami śpi, bo to drukarka włączana jest co kilka godzin )

SORTOWANIE - pliki te posiadają unikalne prefiksy A3, A4 , A5 etc


np
ICM_A3_ aafasdfsfaf.pdf przenoszony jest do folderu \\192.168.3.100\A3
tps_A5_ aafasdfsfaf.pdf przenoszony jest do folderu \\192.168.3.100\A5
XYZ_A4_ aafasdfsfaf.pdf przenoszony jest do folderu \\192.168.3.100\A4

pliki, które się nie łapią w filtr niech zostaną w tym hot folderze do ręcznego przeniesienia-popraiwenia prefixu

Skrypt powinien próbować ponawiać wysyłkę do np 15 sek do skutku (włączenia drukarki)
Skrypt powinien wyszukiwać czy nie wpadł nowy plik co 10 sek

Skalowanie rozwiązania:
Chciałbym móc ręcznie dopisywać kolejne ścieżki docelowe i prefiksy

sprzęt TS-212P

prosze o oferty
 
sprzęt TS-212P
EOL, ostatni firmware 4.3.3.2784 build 20240619

Gdyby nie EOL, to:
Qfiling | Automatyzacja organizacji plików | QNAP + Hybrid Backup Sync | Niewymagające licencji rozwiązanie Hybrid Cloud Backup | QNAP

A skrypt uruchomiony na WebCron - MyQNAP z harmonogramu co minutę
W praktyce to 3 ostatnie linie:
Bash:
#!/bin/bash
: ${NAME=crawl}
# NAME: crawl.sh
# --- CONFIGURATION ---
WATCH_DIR="/share/Public/test" # type directory path where to crawl files
# --- :END

# --- GENERAL ---
_PATHS=\
/opt/bin:\
/opt/sbin:\
/opt/local/bin:\
/opt/local/sbin:\
:
export PATH=$_PATHS:$PATH:$_PATHS

function _exit()
{
    echo -e "$*"
    echo

    exit 1
}
available() {
    type -t "$1" >/dev/null && return 0
    return 1
}
need() {
    available "$1" && return 0
    _exit "needed command was not found: $1 (Please make sure Entware-std is installed - www.myqnap.org)"
    exit 1
}
# install find from Entware-std
need opkg
if [ ! -f /opt/bin/find ]; then
    opkg update
    opkg install findutils
fi
# --- :END

# --- SCRIPT ---
/opt/bin/find "$WATCH_DIR" -iname "*_a3_*" -exec echo "Sending file over smb: {}" ";" -exec /usr/local/samba/bin/smbclient //192.168.3.100/A3 -c "put {}" ';' -exec rm "{}" ';'
/opt/bin/find "$WATCH_DIR" -iname "*_a4_*" -exec echo "Sending file over smb: {}" ";" -exec /usr/local/samba/bin/smbclient //192.168.3.100/A4 -c "put {}" ';' -exec rm "{}" ';'
/opt/bin/find "$WATCH_DIR" -iname "*_a5_*" -exec echo "Sending file over smb: {}" ";" -exec /usr/local/samba/bin/smbclient //192.168.3.100/A5 -c "put {}" ';' -exec rm "{}" ';'
# ...

Sample:
Kod:
Sending file over smb: /share/Public/test/45qd_A3_47726074.pdf
/usr/local/samba/bin/smbclient //192.168.3.100/A3 -c put /share/Public/test/45qd_A3_47726074.pdf
Sending file over smb: /share/Public/test/3kiy_A3_03427662.pdf
/usr/local/samba/bin/smbclient //192.168.3.100/A3 -c put /share/Public/test/3kiy_A3_03427662.pdf
Sending file over smb: /share/Public/test/lts0_A3_12734987.pdf
/usr/local/samba/bin/smbclient //192.168.3.100/A3 -c put /share/Public/test/lts0_A3_12734987.pdf
Sending file over smb: /share/Public/test/w2k0_A4_41963974.pdf
/usr/local/samba/bin/smbclient //192.168.3.100/A4 -c put /share/Public/test/w2k0_A4_41963974.pdf
Sending file over smb: /share/Public/test/ceht_A4_63456397.pdf
/usr/local/samba/bin/smbclient //192.168.3.100/A4 -c put /share/Public/test/ceht_A4_63456397.pdf
Sending file over smb: /share/Public/test/q2jc_A4_61749595.pdf
/usr/local/samba/bin/smbclient //192.168.3.100/A4 -c put /share/Public/test/q2jc_A4_61749595.pdf
Sending file over smb: /share/Public/test/c66c_A5_35782947.pdf
/usr/local/samba/bin/smbclient //192.168.3.100/A5 -c put /share/Public/test/c66c_A5_35782947.pdf
Sending file over smb: /share/Public/test/5s78_A5_01640515.pdf
/usr/local/samba/bin/smbclient //192.168.3.100/A5 -c put /share/Public/test/5s78_A5_01640515.pdf

blik 667500033 :)
 
  • Lubię to
Reakcje: Kong
Jestem lamerem, ale do jakiego folderu wgrać skrypt crawl.sh ?

Czy cały zapis to zawartość crawl.sh ?
Czy to tutorial a ostatnie 3 linijki to zawartość pliku : crawl.sh

# --- SCRIPT ---
/opt/bin/find "$WATCH_DIR" -iname "*_a3_*" -exec echo "Sending file over smb: {}" ";" -exec /usr/local/samba/bin/smbclient //192.168.3.100/A3 -c "put {}" ';' -exec rm "{}" ';'
/opt/bin/find "$WATCH_DIR" -iname "*_a4_*" -exec echo "Sending file over smb: {}" ";" -exec /usr/local/samba/bin/smbclient //192.168.3.100/A4 -c "put {}" ';' -exec rm "{}" ';'
/opt/bin/find "$WATCH_DIR" -iname "*_a5_*" -exec echo "Sending file over smb: {}" ";" -exec /usr/local/samba/bin/smbclient //192.168.3.100/A5 -c "put {}" ';' -exec rm "{}" ';'
# ...


0/10 * * * * / /crawl.sh

Łącze się putty i wisscp więc mam

1740839798007.png


WebCron - MyQNAP - nie działa błąd w instalacji
1740840469440.png


WebCron - MyQNAP
Połączono posty:

w hbs jest funkcja filtrowania, która załatwiłaby sortowanie, ale nie ma transportu takiego gdzie pliki przenosi tylko używa synchronizacji, czy coś przegapiłem?

1740842087397.png

1740843795299.png
 

Użytkownicy znaleźli tą stronę używając tych słów:

  1. opkg
  2. entware