ma lo devi fare con uno script PHP o con uno Bash Script
Salve.
Il mio problema è scrivere un script in grado di copiare un file da un server windows ad un server Linux (nello specifico Ubuntu), dove è installato apache.
I due pc sono collocati nella stessa rete lan, e il file è raggiungibile solamente tramite un percorso di tipo smb:// protetto da password.
Qualcuno è in grado di aiutarmi?
Sono gradite anche soluzioni alternative.
Ringrazio anticipatamente.
ma lo devi fare con uno script PHP o con uno Bash Script
::::::::::::::::::::::::::
Claudio Garau
Seguimi su Twitter: @ClaudioGarau
Autore corsi Corso PHP - Creazione di siti dinamici,
Corso Linux - Guida completa al sistema open e
Corso MySQL - gestione del database open-source
Corso Java - Programmazione OOP in ambiente Java SUN
per Mrwcorsi.it
Siti
PHP, Linux and more :: La Via delle Arti Marziali
Php, ma posso usare anche la funzione exec() per mandare un comando al terminale come "cp".
Il problema è che non riesco a fargli accettare il percorso di tipo smb:// ...
Questa classe sembra fare al caso tuo. Ti consiglio di dargli un'occhiata.
In effetti sembra proprio ciò che mi serve.
E' un pò scarna di documentazione però questa classe
Ho un pò di difficoltà nell'usarla, sapete aiutarmi?
Non sono sicuro di aver capito bene, ma mi sembra di leggere che in realtà non sia necessario usare direttamente la classe. Devi solamente includerla nel tuo script e poi potrai accedere tranquillamente agli URL smb:// tramite le funzioni della libreria stream.
Quoto dalla descrizione
Quindi nella classe è implementata qualche funzione per leggere i file. Il problema è capire quale... Non c'è un minimo di documentazione.The class implements functions to create, read and write to files available in the local network shares.
Ripeto: prova ad accedere all'URL come faresti normalmente con le funzioni per la manipolazione dei file (fopen, fwrite, fgets) e vedi se funziona. Io, purtroppo, non posso testare la classe, quindi dovrai necessariamente farlo tu.
Incredibile, ma vero, funziona!
Non mi spiego ancora a livello tecnico come possa essere possibile, dato la classe non ri-implementa nessun metodo già esistente, ne c'è la necessita dichiarare un oggetto appartenente ad essa per il suo utilizzo. Insomma, a prima vista è un utilizzo totalmente trasparente, mi è bastato semplicemente includere la classe nel mio script e usare la semplicissima funzione copy con il percorso smb://.
Grazie mille!
Se ti interessa, la magia sta tutta in questa riga:
Che praticamente registra il wrapper per gli URL di tipo smb. Con questo sistema puoi gestire un tipo illimitato di protocolli, semplicemente registrando il relativo wrapperCodice PHP:stream_wrapper_register('smb', 'smb_stream_wrapper') or die ('Failed to register protocol');
![]()