Toon posts:

BASH-scripting

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo

Bij het uitvoeren van een sh-script
onder linux gebeurd er niet wat ik wil dat er gebeurd. Het script bevat een aantal if functies waarbinnen ncftp sessies worden uitgevoerd. Deze sessies zien er als volgt uit:

ncftp -u $PUSH_USER -p $PUSH_PSW 192.168.1.120 <<EOF >>$LOG
put -r content
bye
EOF

Het zijn meerdere sessies die ik uitvoer en heb het idee dat het met die EOF commands niet goed loopt. Het script voert stukken code gewoonweg niet uit.

  • pjottum
  • Registratie: Mei 2000
  • Laatst online: 21:33

pjottum

¯\_(ツ)_/¯

Je moet alles wat tussen de EOF's staat aan het begin van de regel zetten dus:
code:
1
2
3
4
5
6
7
8
   if [ blaaah ] ; then
    ncftp neuzeldeneuzel bla blah << EOF >> $LOG
put content
exit
EOF 
   else 
    echo blablalba
   fi

en dan weer verder..

I have usernames older than you.


Verwijderd

Topicstarter
ik heb alle code in het script aan het begin staan. Kan dat problemen opleveren en kan ik eventueel die eof's weglaten

Verwijderd

EOF is ' End Of File ' en mag beslist niet weg

Verwijderd

Waarom gebruik je NCFTP ???

Verwijderd

Topicstarter
if [[ -e $SEMAPHORE/www.smp ]] && [[ -e $SEMAPHORE/spectra.zip ]]; then
cd $SEMAPHORE
cp $SEMAPHORE/spectra.zip /usr/tmp

#---------------------------------- Maak een backup van de spectra dir op Milaan en remove de spectra dir uit de backup-dir------

cd /backup
ncftp -u $PUSH_USER -p $PUSH_PSW 1919191910 << EOF>>$LOG
get -R spectra
exit
EOF
tar -cf spectra_`date '+%Y-%m-%d_%H_%M'`.tar spectra
gzip spectra_`date '+%Y-%m-%d_%H_%M'`.tar
rm -rf spectra
#----------------------------------Unzip de aangeleverde code en stuur deze naar milaan------------------------------------------

cd /usr/tmp/
rm -rf spectra >$LOG
unzip spectra.zip > $LOG
ncftp -u $PUSH_USER -p $PUSH_PSW 192...111 << EOF >>$LOG
put -r spectra
exit
EOF
fi

#-----------------------------------Check Semaphore in de codepush-dir, code-push user en move de zip file naar de bewerk dir.--
if [[ -e $SEMAPHORE/java.smp ]] && [[ -e $SEMAPHORE/java.zip ]]; then
cd $SEMAPHORE
cp $SEMAPHORE/java.zip /usr/tmp

#---------------------------------- Maak een backup van de java dir op Milaan en remove de java dir uit de backup-dir---------

??????????????????????????/

cd /backup
ncftp -u $PUSH_USER -p $PUSH_PSW 11111192 << EOF >>$LOG
get -R java
exit
EOF
??????????????????????????????

tar -cf java_`date '+%Y-%m-%d_%H_%M'`.tar java
gzip java_`date '+%Y-%m-%d_%H_%M'`.tar
rm -rf java

#----------------------------------Unzip de aangeleverde code en stuur deze naar milaan------------------------------------------

cd /usr/tmp/
rm -rf java >>$LOG
unzip java.zip >> $LOG
ncftp -u $PUSH_USER -p $PUSH_PSW 192.11 << EOF >>$LOG
put -r java
exit
EOF


Hij voert het stukje wat tussen vraagtekens staat niet uit

Verwijderd

Topicstarter
ncftp gebruik ik omdat je met gewoon ftp niet een directory tree kan overschrijven zodat alleen de files die je geupdate wilt zien geupdate worden en files die onveranderd blijven niet verdwijnen..

Verwijderd

Ik denk dat het fout gaat met de regel ?????????????????????????????

Verwijderd

Ik denk dat je maar beter een ander vak kunt kiezen.
Jij doet zeker BI

  • pjottum
  • Registratie: Mei 2000
  • Laatst online: 21:33

pjottum

¯\_(ツ)_/¯

Als je wilt mag je <<EOF ook vervangen door <<PIEPERDEPIEP, jij stuurt immers data naar je ncftp commando tot het moment dat er weer PIEPERDEPIEP staat...

maak anders een .netrc met hostnaam erin en doe dit:
code:
1
2
3
4
5
#!/bin/sh
ftp hostnaam <<PJOTTUM  2>&1
ls
bye
PJOTTUM

I have usernames older than you.


Verwijderd

Als je nou eerst eens met [code] tags ging werken. ;).

Verwijderd

Topicstarter
hoe bedoel je met code tags, die code ziet er toch prima uit...

Verwijderd

hartgaan; in je code ontbreekt nog een "fi" na de laatste "if" (of heb je niet het hele script ge'paste' ?)

en moet je bij ncftp niet "quit" gebruiken ipv "exit" ??

Verwijderd

Topicstarter
niet hele code gepaste, gebruik overal exit.

Verwijderd

nog een tip; als je bovenin je script opneemt:

exec >$LOG 2>&1

dan redirect je alle stdout en stderr meldingen naar de log file voor het hele script.
Dan kunnen de ">>$LOG" weg uit de commando's.
(Nu worden de error-meldingen niet in de logfile geschreven.)

Verwijderd

Op maandag 06 mei 2002 15:20 schreef hartgaan het volgende:
hoe bedoel je met code tags, die code ziet er toch prima uit...
code:
1
2
3
4
5
6
if (blaat)
{
  blaat();
  blaat(argument,
      blaat());
}

versus

if (blaat)
{
blaat();
blaat(argument,
blaat());
}

Gebruik:
code:
1
 hier de code
(maar dan zonder spatie in [code])

Verwijderd

Op maandag 06 mei 2002 15:46 schreef pir-p3 het volgende:
nog een tip; als je bovenin je script opneemt:

exec >$LOG 2>&1

dan redirect je alle stdout en stderr meldingen naar de log file voor het hele script.
Dan kunnen de ">>$LOG" weg uit de commando's.
(Nu worden de error-meldingen niet in de logfile geschreven.)
Gebruik dan "&> $LOG"

  • pjottum
  • Registratie: Mei 2000
  • Laatst online: 21:33

pjottum

¯\_(ツ)_/¯

Op maandag 06 mei 2002 15:20 schreef hartgaan het volgende:
hoe bedoel je met code tags, die code ziet er toch prima uit...
Ja, wil je wel helpen, maar snap niks van de redenen waarom je je code zo neer zou willen pennen in een scriptje.
Ik zag nog een mooie: [[ -e file ]]

je mag wel met [ -e file ] volstaan hoor..

I have usernames older than you.


  • BrZ
  • Registratie: Maart 2000
  • Laatst online: 30-07 09:36

BrZ

hmm, waarom gebruik je geen ncftpput en ncftpget?
Daar maak je het jezelf volgens mij een stuk makkelijker mee ;)

  • reclamedoos
  • Registratie: Juli 2000
  • Laatst online: 27-07 08:58
Hier stond wat onzin die ik in een opwelling uitkraamde.

Verwijderd

Misschien om te experimenteren?
Of omdat hij iets wilde automitiseren en besloten heeft om het met BASH scripting te proberen zodattie er wat van leert ofzo.

Niet iedereen wordt geboren met een de linux MAN pages in zijn geheugen hoor. ;)

Verwijderd

rsync.samba.org is dattuh wat :?
Pagina: 1