Mein Log ist 100MB

Begonnen von Rantanplan, 20 Dezember 2014, 14:47:33

Vorheriges Thema - Nächstes Thema

Rantanplan

Moin,
ich versuche eine Logmeldung aus meinem Log zu verbannen
2014.12.20 02:07:21 1: PERL WARNING: Can't exec "touch": Not a directory at ./FHEM/73_PRESENCE.pm line 624.

624:    qx(touch /var/tmp/fhem-PRESENCE-cmd-lock.tmp);

fhem auf fritzbox Firmware: 103.06.01 rev27132 Freetz: devel-11617M
Presence funktioniert auch soweit....
kann mir wer ne Richtung geben!? tmp-Ordner ändern in PRESENCE!?

PeMue

Hallo Rantanplan,

unter welchem user läuft denn fhem? Ich vermute, Du brauchst root, damit fhem das touch auch ausführen darf bzw. die Datei öffnen darf.

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

Rantanplan

läuft unter root...
hab auch jetzt mal den pfad in der presence geändert; gleiche Meldung...  :-\

Rantanplan

#3
kann das was damit zu tun haben, dass ich mein Perl ersetzt habe? ->Perl ersetzt
hat das was mit den Libs zu tun, hab das Gefühl die sind nicht richtig eingebunden.... "libpth=/lib /usr/lib"?

Summary of my perl5 (revision 5 version 12 subversion 2) configuration:
   
  Platform:
    osname=linux, osvers=2.6.28.10, archname=mips-linux
    uname='linux fritz.fonwlan.box 2.6.28.10 #5 fri nov 12 14:01:45 cet 2010 mips gnulinux '
    config_args='-des'
    hint=previous, useposix=true, d_sigaction=define
    useithreads=undef, usemultiplicity=undef
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=undef, use64bitall=undef, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-fno-strict-aliasing -pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-O2',
    cppflags='-fno-strict-aliasing -pipe -fno-strict-aliasing -pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
    ccversion='', gccversion='4.4.4', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=8
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =''
    libpth=/lib /usr/lib
    libs=-lnsl -ldl -lm -lcrypt -lc
    perllibs=-lnsl -ldl -lm -lcrypt -lc
    libc=/lib/libc.so, so=so, useshrplib=false, libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
    cccdlflags='-fPIC', lddlflags='-shared -O2'


Characteristics of this binary (from libperl):
  Compile-time options: PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP
                        USE_LARGE_FILES USE_PERLIO USE_PERL_ATOF
  Built under linux
  Compiled at Feb 10 2011 16:33:41
  %ENV:
    PERL5LIB=":/var/media/ftp/Sticky8it/tools/fhem/lib/perl5/"
  @INC:
    /var/media/ftp/Sticky8it/tools/fhem/lib/perl5//5.12.2/mips-linux
    /var/media/ftp/Sticky8it/tools/fhem/lib/perl5//5.12.2
    /var/media/ftp/Sticky8it/tools/fhem/lib/perl5/
    /opt/lib/perl5/site_perl/5.12.2/mips-linux
    /opt/lib/perl5/site_perl/5.12.2
    /opt/lib/perl5/5.12.2/mips-linux
    /opt/lib/perl5/5.12.2

in meiner rc.custom steht ein export PATH="$PATH:/var/media/ftp/Sticky8it/tools/fhem/"
export PERL5LIB="$PERL5LIB:/var/media/ftp/Sticky8it/tools/fhem/lib/perl5/"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/var/media/ftp/Sticky8it/tools/fhem/lib/"

das müsste es doch reissen...

Rantanplan

Ich bin mir mittlerweile sicher, dass Perl 'nen Schlag hat;
PERL WARNING: Can't exec "lsusb": Not a directory at ./FHEM/98_autocreate.pm line 366.
PERL WARNING: Can't exec "ls": Not a directory at ./FHEM/98_autocreate.pm line 388.

beides systembefehle, die er nicht findet
366 my $lsusb = `lsusb`;
388 foreach my $dev (sort split("\n", `ls $dir`)) {

PeMue

Hallo rantanplan,

was sagt denn lsusb auf der Konsole der FritzBox?

Bei mir kommt dann folgendes:
# lsusb
BUS=001
DEV=001
VID=1d6b
PID=0003
CLS=09
SCL=00
SPEED='super'
VER='3.0'
ISOC=0
INUM=1
ICLS1=09
ISCL1=00

BUS=001
DEV=002
VID=1a40
PID=0101
CLS=09
SCL=00
SPEED='hi'
VER='2.0'
ISOC=0
INUM=1
ICLS1=09
ISCL1=00

BUS=001
DEV=004
VID=03eb
PID=204b
CLS=02
SCL=00
SPEED='full'
VER='1.1'
ISOC=0
INUM=2
ICLS1=02
ISCL1=02
ICLS2=10
ISCL2=00

BUS=001
DEV=003
VID=0403
PID=6001
CLS=00
SCL=00
SPEED='full'
VER='2.0'
ISOC=0
INUM=1
ICLS1=255
ISCL1=255

Wenn das bei Dir nicht geht, hat die Firmware Deiner FritzBox ein Problem ...

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

Rantanplan

lsusb liefert:

BUS=002
DEV=001
VID=1d6b
PID=0002
CLS=09
SCL=00
SPEED='hi'
VER='2.0'
ISOC=0
INUM=1
ICLS1=09
ISCL1=00

BUS=002
DEV=002
VID=090c
PID=1000
CLS=00
SCL=00
SPEED='hi'
VER='2.0'
ISOC=0
INUM=1
ICLS1=08
ISCL1=06

BUS=001
DEV=001
VID=1d6b
PID=0002
CLS=09
SCL=00
SPEED='hi'
VER='2.0'
ISOC=0
INUM=1
ICLS1=09
ISCL1=00

BUS=001
DEV=002
VID=04b4
PID=6560
CLS=09
SCL=00
SPEED='hi'
VER='2.0'
ISOC=0
INUM=1
ICLS1=09
ISCL1=00

BUS=001
DEV=006
VID=2341
PID=003d
CLS=02
SCL=00
SPEED='full'
VER='1.1'
ISOC=0
INUM=2
ICLS1=02
ISCL1=02
ICLS2=10
ISCL2=00

BUS=001
DEV=005
VID=03eb
PID=204b
CLS=02
SCL=00
SPEED='full'
VER='1.1'
ISOC=0
INUM=2
ICLS1=02
ISCL1=02
ICLS2=10
ISCL2=00

PeMue

ok, und was sagt
{ `lsusb` }
in der fhem Kommandozeile?

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

Rantanplan

#8
1: PERL WARNING: Can't exec "lsusb": Not a directory at (eval 1817) line 1.
3: eval: { `lsusb` }

reproduziert, danke!...
ich versuch mal ein chmod -R 777 lib/perl5 -> kein Erfolg
ich ersetze komplett fhem durch ein neues aus dem fb7390 image.

Rantanplan

so, nachdem ich auf ein neues fhem image migriert bin, bekomme ich nach Reboot wieder folgende Fehler:
PERL WARNING: Can't exec "lsusb": Not a directory at ./FHEM/98_autocreate.pm line 366.
PERL WARNING: Can't exec "ls": Not a directory at ./FHEM/98_autocreate.pm line 388.
PERL WARNING: Use of uninitialized value in split at ./FHEM/98_autocreate.pm line 388.
   :o
ich betone WIEDER, denn {`lsusb`} ging nach Neuinstallation und migration der fhem.cfg, nun nicht mehr...

PeMue

Hallo Rantanplan,

was steht denn bei Dir in der debug.cfg drin? Wird fhem korrekt gestartet? Welche Firmware hast Du?

Gruß Peter
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

Rantanplan

#11
meine debug.cfg aus /var/flash ist leer.
Firmware: 103.06.01 rev27132 Freetz: devel-11617M
fhem wird über tbflex 2.5 installiert
danke für die Geduld! ^^

Rantanplan

w00000t, ich habs!
Da ich mit dem tbflexpatch arbeite, starte ich natürlich auch fhem über das Webinterface, welches ein Script ausführt, welches nicht das selbe ist, welches sich im fhem Verzeichnis befindet.
Ich weiss zwar noch nicht, warum, aber das könnt ihr mir sicher sagen und einen Bug lösen! 8)
#!/bin/sh
# startskript

daemon=fhem
daemon_cap=FHEM

TOOL_DIR='/tools'

. /usr/lib/tbmodcgi.sh

USTOR_PATH=$TBFLEX_USTOR_PATH
CHROOT_PATH=$TBFLEX_CHROOT_PATH

WORKING_DIR=/tools/fhem
EXTERNAL_PATH=$TBFLEX_TARGET_PATH/external_folder
CONF_DIR=$TBFLEX_TARGET_PATH/tools/fhem/.config
#normale konfig datei, wenn nicht da wird die standard datei kopiert
if [ -e $CONF_DIR/fhem.cfg ]; then
. $CONF_DIR/fhem.cfg
else
cp $CONF_DIR/.standard_fhem.cfg $CONF_DIR/fhem.cfg
. $CONF_DIR/fhem.cfg
fi
#bestimmt welche module geladen werden sollen
if [ -e $CONF_DIR/fhem_modules.cfg ]; then . $CONF_DIR/fhem_modules.cfg ; fi

home=$TBFLEX_TARGET_PATH$WORKING_DIR
VERSIONFILE=fhem_version
BOXTYPE=$FREETZ_INFO_BOXTYPE

DAEMONBIN=$home/$daemon
FHEMPL=$home/fhem.pl
PATH=$home:$PATH
export PATH
export LD_LIBRARY_PATH=$home/lib
if [ "$BOXTYPE" = "7390" ] || [ "$BOXTYPE" = "7360" ] || [  "$BOXTYPE" = "7320" ] || [  "$BOXTYPE" = "3370" ] ; then
export PERL5LIB=$home/lib/perl5/site_perl/5.12.2/mips-linux:$home/lib/perl5/site_perl/5.12.2:$home/lib/perl5/5.12.2/mips-linux:$home/lib/perl5/5.12.2
BOXTYPEOWN="FB7390_based"
fi
if [  "$BOXTYPE" = "3270" ] || [ "$BOXTYPE" = "7170" ] || [ "$BOXTYPE" = "7270" ]|| [ "$BOXTYPE" = "7270_v1" ] || [ "$BOXTYPE" = "7270_v2" ] || [  "$BOXTYPE" = "7270_v3" ] || [  "$BOXTYPE" = "7570" ] ; then
export PERL5LIB=$home/lib/perl:$home/lib/perl/arch
BOXTYPEOWN="FB7270_based"
fi

#perl executable
if [ ! -x $home/perl ] ;  then
chmod 755 $home/perl
fi
if [ ! -L $home/$daemon ] ;  then
ln -s $home/perl $home/$daemon
fi

outputexpert () {
#Output only shown when expert mode is active in toolbox flex
if [ "$USE_EXPERT_MOD" = "yes" ] ; then
OUTPUT=$1
#if [ -z $OUTPUT ] ; then OUTPUT='no output passed' ; fi
echo "$OUTPUT <b>#expert_mod ON</b>"
fi
}

do_updateversion () {
egrep 'DISTRIB_ID=|DISTRIB_RELEASE=|DISTRIB_BRANCH=' $home/FHEM/FhemUtils/release.pm | sed -e 's/\$//g' -e 's/\;//g' -e 's/my//g' -e 's/ = /=/g' > $home/$VERSIONFILE
grep $FHEMPL -e '$cvsid = ' | sed -e 's/ = /=/g' -e 's/my \$//g'  >> $home/$VERSIONFILE
}

updateversion () {
if [ -e $home/$VERSIONFILE ] ; then
OLDERTH1DAY=`find $home/$VERSIONFILE -mtime +1`
#update nur wenn Versionsdatei ‰lter als ein Tag
if [ "$OLDERTH1DAY" = "$home/$VERSIONFILE"  ] ; then
do_updateversion
fi
else
do_updateversion
fi
}

start() {
if [ -e $home/$FHEMCFGFILE ] ; then
FHEMCFG=$home/$FHEMCFGFILE
else
if [ -e $FHEMCFGFILE ] ; then
FHEMCFG=$FHEMCFGFILE
else
echo "<b><font color='#FF0000'>Konfigurationsdatei $FHEMCFGFILE is nicht korrekt!</font></b>"
exit
fi
fi
if [ ! -f $FHEMCFG ] ; then
echo "<b><font color='#FF0000'>Konfigurationsdatei nicht angegeben, versuche fhem.cfg</font></b>"
FHEMCFG="$home"/fhem.cfg
fi

#echo "TARGET_PATH="$TBFLEX_TARGET_PATH
#echo "WORKING_DIR="$WORKING_DIR
#echo "EXTERNAL_PATH="$EXTERNAL_PATH
#echo "CONF_DIR="$CONF_DIR
#echo "home="$home
#echo EXTTOOLS_FHEM_ENABLED=$EXTTOOLS_FHEM_ENABLED
#echo RUNASUSER=$RUNASUSER
#echo FHEMCFGFILE=$FHEMCFGFILE
#echo TELNETPORT=$TELNETPORT
#echo $FHEMCFGFILE                                                                                                                                                   
#echo $FHEMCFG                                                                                                                                                 

id fhem > /dev/null 2>&1
if [ "$?" -ne "0" ]; then
USERFHEMEX=no
else
USERFHEMEX=yes
fi

HOMEOWNER=`ls -l $CONF_DIR/fhem.cfg | awk '{print$3}'`

if [ "$USERFHEMEX" = no ] &&  [ "$RUNASUSER" = root ]; then
if [ "$HOMEOWNER" != "$RUNASUSER" ]; then
chown -R $RUNASUSER $home
fi
if [ "$BOXTYPEOWN" = "FB7390_based" ] ; then
chown root $home/dfu-programmer
chmod 4755 $home/dfu-programmer
fi
elif [ "$USERFHEMEX" = yes ] &&  [ "$RUNASUSER" = root ]; then
deluser fhem
if [ "$HOMEOWNER" != "$RUNASUSER" ]; then
chown -R $RUNASUSER $home
fi
if [ "$BOXTYPEOWN" = "FB7390_based" ] ; then
chown root $home/dfu-programmer
chmod 4755 $home/dfu-programmer
fi
elif [ "$USERFHEMEX" = no ] &&  [ "$RUNASUSER" = fhem ]; then
USERID=1080
cat /etc/passwd | grep $USERID >> /dev/null
ERRORLVL=$?
while [ $ERRORLVL = 0 ]
do
USERID=$(($USERID + 1))
cat /etc/passwd | grep $USERID >> /dev/null
ERRORLVL=$?
done
echo "fhem:any:$USERID:0:fhem:/home-not-used:/bin/sh" >>/var/tmp/passwd
if [ "$HOMEOWNER" != "$RUNASUSER" ]; then
chown -R $RUNASUSER $home
fi
if [ "$BOXTYPEOWN" = "FB7390_based" ] ; then
chown root $home/dfu-programmer
chmod 4755 $home/dfu-programmer
fi
elif [ "$USERFHEMEX" = yes ] &&  [ "$RUNASUSER" = fhem ]; then
if [ "$HOMEOWNER" != "$RUNASUSER" ]; then
chown -R $RUNASUSER $home
fi
if [ "$BOXTYPEOWN" = "FB7390_based" ] ; then
chown root $home/dfu-programmer
chmod 4755 $home/dfu-programmer
fi
fi

echo "Starte FHEM Dienst ..."
outputexpert "Boxtype $BOXTYPEOWN"
#load kernel modules
i=1
for j in $MODULES_AVAILABLE
do
#echo $i: $j
LOADMOD=`egrep "LOAD_MODULE_"$i  $CONF_DIR/fhem_modules.cfg | cut -d "'" -f2`
if [ ! -z $LOADMOD ] ; then
lsmod | grep $j >> /dev/null
GREPSTATUS=$?
if [ $GREPSTATUS -eq "1" ]; then
outputexpert "Modul $j laden"
modprobe $j
sleep 1
else
outputexpert "Modul $j bereits geladen"
fi
else
outputexpert "Modul $j nicht laden"
fi
i=`expr $i + 1`
done

if [ -x $home/fhemcmd.sh ]
then
        ln -sf $home/fhemcmd.sh /var/fhemcmd
fi

cd $home
$DAEMONBIN $FHEMPL $FHEMCFG 1>$home/ERROR1 2>$home/ERROR2
sleep 2
if [ -z "$(pidof "$daemon")" ]; then
echo "$daemon <b><font color='#FF0000'>konnte nicht gestartet werden!</font></b>"
[ -s $home/ERROR1 ] && cat $home/ERROR1
[ -s $home/ERROR2 ] && cat $home/ERROR2
else
if [ -s $home/ERROR1 ]; then
echo "$daemon<font color='#008000'> gestartet</font><font color='#FF0000'><b> ABER mit folgender Fehlermeldung ERROR1.</font></b>"
        tail $home/ERROR1
elif [ -s $home/ERROR2 ]; then
echo "$daemon<font color='#008000'> gestartet</font><font color='#FF0000'><b> ABER mit folgender Fehlermeldung ERROR2.</font></b>"
        tail $home/ERROR2
else
echo "$daemon<b><font color='#008000'> gestartet.</font></b>"
fi
fi
}

stop() {
echo "Stoppe FHEM Dienst ..."
if [ -z "$(pidof "$daemon")" ];then
    echo "$daemon<b><font color='#FF0000'> laeuft nicht.</font></b>"
else
if [ -z $TELNETPORT ] ; then
#echo kill mit killall $daemon
killall $daemon
    KILLSTATUS=$?
if [ $KILLSTATUS -eq 0 ]; then
echo "$daemon<b><font color='#FF0000'> gestoppt.</font></b>"
else
echo "<b><font color='#FF0000'>$daemon nicht gestoppt.</font></b>"
fi
else
cd $home
#echo kill mit $FHEMPL
$DAEMONBIN $FHEMPL $TELNETPORT shutdown
sleep 1
if [ -z "$(pidof "$daemon")" ]; then
echo "$daemon<b><font color='#FF0000'> gestoppt.</font></b>"
else
echo "<b><font color='#FF0000'>$daemon nicht gestoppt.</font></b>"
echo "<b><font color='#FF0000'>TELNETPORT $TELNETPORT richtig und ohne Passwort konfiguriert?</font></b>"
echo "<b><font color='#FF0000'>Wenn Sie es nicht wissen den Telnetport lˆschen</font></b>"
fi
fi
fi
}

trim_string() {
    trimmed=$1
    trimmed=${trimmed%%}
    trimmed=${trimmed##}
    echo $trimmed
}

webif() {
HOST_IP=$(trim_string `hostname -i`)
status=$($0 status)
#echo $status
case $status in
running)
class="running"
;;
stopped)
class="stopped"
;;
esac
if [ "$status" = "stopped" ] || [ "$status" = "none" ]; then
echo "<font color='#FF0000'>web-interface</font>"
else
local FHEM_WEBIF=$(trim_string `grep "\ WEB\ " "$TBFLEX_TARGET_PATH/$WORKING_DIR/fhem.cfg" | cut -d " " -f4`)
if [ -z "$FHEM_WEBIF" ]; then
    echo "<font color='#d4d6d7'>web-interface</font>"
else
echo "<a class='webif' href='$HOST_IP:$FHEM_WEBIF/fhem' target='_blank'><font color='#008000'><u>web-interface</u></font></a>"
fi
fi
}

case "$1" in
    updateversion)
updateversion
;;
start)
      start
      updateversion
;;
   
    stop)
    stop
    ;;
   
    restart)
      stop
      start
    ;;
     
    status)
      if [ -z "$(pidof "$daemon")" ]; then
       echo 'stopped'
      else
       echo 'running'
      fi
  updateversion
;;

fhem_webif)
webif
;;

    *)
     echo "Usage: $0 [start|stop|load|restart|status|updateversion|fhem_webif]" 1>&2
     exit 1
    ;;
esac

exit 0   

Achso; gestartet über das startfhemAsRoot script gegth alles Besten! dankedankedanke PeMu!!!!