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

mkupiec

Nowy użytkownik
Noobie
Feb 26, 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:
Code:
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 :)
 
  • Like
Reactions: 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
Post automatically merged:

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
 

Users search this thread by keywords

  1. entware
  2. opkg