PDA

View Full Version : un file bat può girare anche su linux?


Cippo Cippo
16-02-2007, 10:10
mi spiego meglio:

c'è un job che gira un Application Server Windows

Dovremmo fare il movingmoving del job che ha concatenato un programma esterno in *.bat
Secondo voi, occorre ricompilarlo (calcolare che il .bat verrebbe elaborato dallo stesso identico programma)

ilsensine
16-02-2007, 10:27
Non ho ben capito....quel bat è uno script interpretato da quel particolare programma? In questo caso non vedo problemi.

Se invece ti riferisci ai classici bat di windows, interpretati da cmd.exe, allora non vanno bene su linux ovviamente.

Specifica quindi se il bat è _interpretato_ o _generato_ da quel programma...

Cippo Cippo
16-02-2007, 10:35
echo on
net use k: \\10.200.255.100\common
date /t > K:\%1\100\trasporti\trasporti.log
echo input >> K:\%1\100\trasporti\trasporti.log
net use v: \\10.200.23.123\******* /USER:*********\***
copy v:\*.* K:\%1\100\trasporti\input\*.*
copy v:\*.* K:\%1\100\trasporti\storico\input\*.*
copy v:\MPT_*.* K:\%1\100\trasporti\input\MPT
copy v:\tratte_*.* K:\%1\100\trasporti\input\tratte


echo on
echo cancella giornaliero >> K:\%1\100\trasporti\trasporti.log
del K:\%1\100\trasporti\input\MPT_*.*
del K:\%1\100\trasporti\input\Tratte_*.*
copy v:\*.* v:\salva\*.*
del V:\*.*
net use v: /DELETE
net use k: /DELETE

ecco cosa richiamano i bat

Artemisyu
16-02-2007, 10:36
ecco cosa richiamano i bat

E' evidente che non gira su linux :)

Cippo Cippo
16-02-2007, 10:37
quasi sicuramente dovrò ricostruire o rivedere l'intero albero delle directory, ma la sintassi rimane quella?

Neon87
16-02-2007, 10:45
quasi sicuramente dovrò ricostruire o rivedere l'intero albero delle directory, ma la sintassi rimane quella?

non ho ben capito la storia del programma che usa il .bat
ad ogni modo questi richiamano comandi del prompt di windows...
su linux ci sono diversi comandi... devi riconvertirlo...

ilsensine
16-02-2007, 10:46
No non rimane quella. Linux ha altri linguaggi di scripting.

echo -> echo (ma "echo on" non esiste)
net -> programmi di networking di linux; non so esattamente cosa fa il tuo comando in questo caso
date -> date (ma con sintassi differente; v. man date)
copy -> cp (sintassi differente; ad es. copy v:\*.* v:\salva\*.* diventa qualcosa tipo cp * /<path>/salva)
del -> rm

Cippo Cippo
16-02-2007, 11:02
ok, chiarissimo.

Grazie 1000!

vampirodolce1
16-02-2007, 13:12
net -> programmi di networking di linux; non so esattamente cosa fa il tuo comando in questo casoIl primo comando monta un disco remoto come si fa con nfs:
net use k: \\10.200.255.100\common
mount 10.200.255.100:/common /mnt/k
Nel secondo caso invece viene richiesta l'autenticazione, che non credo sia supportata da nfs (correggimi se sbaglio), quindi:
net use v: \\10.200.23.123\******* /USER:*********\*** (/u:dominio\nome_utente)
mount -t smbfs -o username=nome_utente/dominio //10.200.23.123/**** /mnt/v
Infine, gli ultimi due comandi:
net use v: /DELETE
net use k: /DELETE
sono i corrispondenti di umount.

ilsensine
16-02-2007, 13:17
Ok quindi si possono sostituire con smbmount e smbumount. Se la directory di montaggio appartiene all'utente, non necessitano dei privilegi di root a differenza di mount.

Cippo Cippo
19-02-2007, 09:58
Ragazzi, ditemi se è giusto cosi allora

echo on
net use k: \\10.200.255.120\comune
date /t > K:\%1\100\trans\trasporti.log
echo input >> K:\%1\100\trasporti\trasporti.log
net use v: \\10.200.23.111\SLES pluto /USER:pippo\paperino
copy v:\*.* K:\%1\100\trans\input\*.*
copy v:\*.* K:\%1\100\trans\storico\input\*.*
copy v:\MPT_*.* K:\%1\100\trans\input\MPT
copy v:\tratte_*.* K:\%1\100\trasporti\input\tratte

#echo
#nfs mount 10.200.255.120:/comune /mnt/k
#date /tpm/100/trans/trasporti.log
#mount -t smbfs -o username=pippo/paperino /10.200.23.111/SLES pluto /mnt/v
#cp /tmp/*.* tpm/100/trans/input/*.*
#cp /tmp/*.* tpm/100/trasporti/storico/input/*.*
#cp /tpm/MPT_*.* tpm/100/trans/input/MPT
#cp /tmp/tratte_*.* tpm/100/trans/input/tratte


echo on
echo descrizione >> K:\%1\100\trans\trasporti.log
del K:\%1\100\trans\input\MPT_*.*
del K:\%1\100\trans\input\Tratte_*.*
copy v:\*.* v:\salva\*.*
del V:\*.*
net use v: /DELETE
net use k: /DELETE

#echo
#rm /tmp/100/trans/input/MPT_*.*
#rm /tmp/100/trans/input/Tratte_*.*
#cp /tmp/*.* /tmp/salva/*.*
#rm /tmp/*.*
#umount /10.200.255.120/comune
#umount /10.200.23.115/SLES

Neon87
19-02-2007, 14:32
#echo
sono inutili...

#cp /tmp/*.* /tmp/salva/*.*
cp /tmp/* /tmp/salva/
va piu' che bene... se contiene cartelle devi fare copia ricorsiva "cp -R"

#rm /tmp/100/trans/input/MPT_*.*
#rm /tmp/100/trans/input/Tratte_*.*
rm /tmp/100/trans/input/MPT_*
rm /tmp/100/trans/input/Tratte_*

leggiti bene:
man cp
man rm