Das Reentry-Problem mit einem Generation-Counter zu lösen daran hab ich allerdings nicht gedacht, nett.
Ich auch nicht, aber boost
Das Reentry-Problem mit einem Generation-Counter zu lösen daran hab ich allerdings nicht gedacht, nett.
Ich auch nicht, aber boost
Kleines Script zum prüfen, ob neue Beiträge im WHF vorhanden sind (benötigt natürlich das Login-Cookie):Bash Alles anzeigen#!/bin/bash # Führe mich mit dem watch-Befehl aus und setz das Terminal irgendwo in die Ecke. wget -x --load-cookies cookies.txt http://www.winhistory-forum.net/search.php?action=unread -O - 2>/dev/null | grep -i "Entschuldigung, aber" 1>/dev/null if [ $? -eq 0 ] then echo "Es gibt nichts neues im WHF. Echt nicht." else echo "Neue Posts im WHF!" fi
Kann man sicher auch ein hübsches KDE-Widget draus bauen. Man könnte jetzt als Bonus noch anzeigen, WELCHE Beiträge neu sind, das könnte ich auch noch reinsetzen
Hat jemand ne Ahnung, wie ichdas Skript auf Opera zum laufen bekomme? Ich komme nicht an den Cookie
Opera muesste irgendwie Cookies exportieren koennen Evtl per Plugin?
Bei Opera kp, für Chrome gibts ein Plugins für den Export. Müsste es für Opera sicher auch geben. (Wenn es das nicht sogar von Haus aus kann)
Dummerweise benutzt Opera weder ein übliches Datenbank-Format wie SQLite noch besitzt es standardmäßig über eine Funktion zum Export von Cookies. Seine Datenstruktur stammt noch aus Delphi-Win16-Tagen. Ohne einen externen Konverter (oder einen anderen Browser, der Operas Profile importieren kann ) geht da nichts.
/* ansi.c
* only for 256-color terminals
*/
#include <stdio.h>
/* TODO: read from file */
#include "figure1.h"
#define ANSI_XTERM256_SET_BG "\033[48;5;"
#define ANSI_DEFAULT_BG "\033[49"
#define CHANGE_COLOR(c) printf(ANSI_XTERM256_SET_BG "%um", (c))
#define RESET_COLOR printf(ANSI_DEFAULT_BG "m")
int main(void)
{
/* -1 == transparency, 0..255 xterm colors */
int prevcolor = -1;
int color;
unsigned int i = 0;
unsigned int x, y;
for (y = 0; y < picture_height; y++)
{
for (x = 0; x < picture_width; x++)
{
color = picture_data[i++];
if (!picture_opaque[i-1]) color = -1;
if (color != prevcolor)
{
if (color != -1)
CHANGE_COLOR(color);
else
RESET_COLOR;
prevcolor = color;
}
putchar(' ');
/* end of line */
if (x == picture_width - 1)
{
if (prevcolor != -1)
{
RESET_COLOR;
prevcolor = -1;
}
puts("");
}
}
}
return 0;
}
Alles anzeigen
/* figure1.h */
static unsigned int picture_width = 25;
static unsigned int picture_height = 23;
static unsigned char picture_data[] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,125,125,125,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,211,
168,162,162,162,162,162,125,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,168,169,
168,211,211,211,125,162,162,125,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,168,168,
211,211,211,211,211,211,162,162,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,168,211,
211,211,0,168,211,211,162,162,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,125,211,
0,253,253,74,0,211,168,162,0,
0,125,162,162,162,162,125,125,0,0,0,0,0,0,0,125,
211,253,253,74,0,211,168,162,125,
0,162,162,125,125,125,162,162,125,0,0,0,0,0,0,162,
211,211,253,74,169,211,168,125,125,
0,162,125,162,162,162,125,125,162,0,0,0,0,0,0,162,
211,211,211,253,211,211,211,125,125,
125,162,162,162,162,162,125,125,125,125,0,0,0,0,0,162,
211,211,211,211,211,211,168,125,125,
125,125,162,162,162,125,162,125,162,125,168,168,168,125,162,162,
125,211,168,125,131,125,125,125,125,
125,125,162,162,162,162,125,0,125,168,211,211,211,125,162,125,
125,211,168,125,131,125,125,125,125,
125,125,162,162,162,162,0,0,0,211,221,221,211,211,125,125,
125,211,168,125,131,125,125,125,125,
125,125,162,162,125,125,0,0,0,74,211,74,211,211,211,162,
125,168,125,125,131,125,125,125,125,
125,125,162,162,125,125,0,0,0,168,211,221,168,211,211,125,
211,0,0,0,0,0,0,125,125,
125,125,162,162,125,125,0,0,0,168,211,211,211,211,211,211,
168,0,0,0,0,0,0,0,0,
125,125,162,162,125,125,0,0,168,211,168,132,132,0,168,211,
169,0,0,0,0,0,0,0,0,
125,125,162,162,125,125,0,0,168,211,169,169,0,0,168,211,
169,0,0,0,0,0,0,0,0,
125,125,162,162,125,125,0,0,211,211,169,169,0,0,168,211,
168,132,0,0,0,0,0,0,0,
125,125,162,162,125,125,0,0,211,211,169,169,0,0,168,211,
168,132,0,0,0,0,0,0,0,
125,125,162,125,125,0,0,0,211,211,169,169,0,0,168,211,
211,169,132,0,0,0,0,0,0,
125,125,0,0,0,0,0,168,211,211,132,132,0,0,168,211,
211,168,132,0,0,0,0,0,0,
0,0,0,0,0,0,0,168,168,168,0,0,0,0,0,168,
168,168,0,0,0,0,0,0,0
};
static unsigned char picture_opaque[] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,1,1,1,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,1,1,1,1,1,1,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,1,1,1,1,1,1,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,1,1,1,1,1,1,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,1,1,1,1,1,1,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,1,1,1,1,1,1,0,
0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,
1,1,1,1,1,1,1,1,1,
0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,
1,1,1,1,1,1,1,1,1,
0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,
1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,
1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,
1,0,0,0,0,0,0,1,1,
1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,
1,0,0,0,0,0,0,0,0,
1,1,1,1,1,1,0,0,1,1,1,1,1,0,1,1,
1,0,0,0,0,0,0,0,0,
1,1,1,1,1,1,0,0,1,1,1,1,0,0,1,1,
1,0,0,0,0,0,0,0,0,
1,1,1,1,1,1,0,0,1,1,1,1,0,0,1,1,
1,1,0,0,0,0,0,0,0,
1,1,1,1,1,1,0,0,1,1,1,1,0,0,1,1,
1,1,0,0,0,0,0,0,0,
1,1,1,1,1,0,0,0,1,1,1,1,0,0,1,1,
1,1,1,0,0,0,0,0,0,
1,1,0,0,0,0,0,1,1,1,1,1,0,0,1,1,
1,1,1,0,0,0,0,0,0,
0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,
1,1,0,0,0,0,0,0,0
};
Alles anzeigen
GIMP Palette
Name: Xterm 256
Columns: 16
#
0 0 0 Color
128 0 0 Color
0 128 0 Color
128 128 0 Color
0 0 128 Color
128 0 128 Color
0 128 128 Color
192 192 192 Color
128 128 128 Color
255 0 0 Color
0 255 0 Color
255 255 0 Color
0 0 255 Color
255 0 255 Color
0 255 255 Color
255 255 255 Color
0 0 0 Color
0 0 95 Color
0 0 135 Color
0 0 175 Color
0 0 215 Color
0 0 255 Color
0 95 0 Color
0 95 95 Color
0 95 135 Color
0 95 175 Color
0 95 215 Color
0 95 255 Color
0 135 0 Color
0 135 95 Color
0 135 135 Color
0 135 175 Color
0 135 215 Color
0 135 255 Color
0 175 0 Color
0 175 95 Color
0 175 135 Color
0 175 175 Color
0 175 215 Color
0 175 255 Color
0 215 0 Color
0 215 95 Color
0 215 135 Color
0 215 175 Color
0 215 215 Color
0 215 255 Color
0 255 0 Color
0 255 95 Color
0 255 135 Color
0 255 175 Color
0 255 215 Color
0 255 255 Color
95 0 0 Color
95 0 95 Color
95 0 135 Color
95 0 175 Color
95 0 215 Color
95 0 255 Color
95 95 0 Color
95 95 95 Color
95 95 135 Color
95 95 175 Color
95 95 215 Color
95 95 255 Color
95 135 0 Color
95 135 95 Color
95 135 135 Color
95 135 175 Color
95 135 215 Color
95 135 255 Color
95 175 0 Color
95 175 95 Color
95 175 135 Color
95 175 175 Color
95 175 215 Color
95 175 255 Color
95 215 0 Color
95 215 95 Color
95 215 135 Color
95 215 175 Color
95 215 215 Color
95 215 255 Color
95 255 0 Color
95 255 95 Color
95 255 135 Color
95 255 175 Color
95 255 215 Color
95 255 255 Color
135 0 0 Color
135 0 95 Color
135 0 135 Color
135 0 175 Color
135 0 215 Color
135 0 255 Color
135 95 0 Color
135 95 95 Color
135 95 135 Color
135 95 175 Color
135 95 215 Color
135 95 255 Color
135 135 0 Color
135 135 95 Color
135 135 135 Color
135 135 175 Color
135 135 215 Color
135 135 255 Color
135 175 0 Color
135 175 95 Color
135 175 135 Color
135 175 175 Color
135 175 215 Color
135 175 255 Color
135 215 0 Color
135 215 95 Color
135 215 135 Color
135 215 175 Color
135 215 215 Color
135 215 255 Color
135 255 0 Color
135 255 95 Color
135 255 135 Color
135 255 175 Color
135 255 215 Color
135 255 255 Color
175 0 0 Color
175 0 95 Color
175 0 135 Color
175 0 175 Color
175 0 215 Color
175 0 255 Color
175 95 0 Color
175 95 95 Color
175 95 135 Color
175 95 175 Color
175 95 215 Color
175 95 255 Color
175 135 0 Color
175 135 95 Color
175 135 135 Color
175 135 175 Color
175 135 215 Color
175 135 255 Color
175 175 0 Color
175 175 95 Color
175 175 135 Color
175 175 175 Color
175 175 215 Color
175 175 255 Color
175 215 0 Color
175 215 95 Color
175 215 135 Color
175 215 175 Color
175 215 215 Color
175 215 255 Color
175 255 0 Color
175 255 95 Color
175 255 135 Color
175 255 175 Color
175 255 215 Color
175 255 255 Color
215 0 0 Color
215 0 95 Color
215 0 135 Color
215 0 175 Color
215 0 215 Color
215 0 255 Color
215 95 0 Color
215 95 95 Color
215 95 135 Color
215 95 175 Color
215 95 215 Color
215 95 255 Color
215 135 0 Color
215 135 95 Color
215 135 135 Color
215 135 175 Color
215 135 215 Color
215 135 255 Color
215 175 0 Color
215 175 95 Color
215 175 135 Color
215 175 175 Color
215 175 215 Color
215 175 255 Color
215 215 0 Color
215 215 95 Color
215 215 135 Color
215 215 175 Color
215 215 215 Color
215 215 255 Color
215 255 0 Color
215 255 95 Color
215 255 135 Color
215 255 175 Color
215 255 215 Color
215 255 255 Color
255 0 0 Color
255 0 95 Color
255 0 135 Color
255 0 175 Color
255 0 215 Color
255 0 255 Color
255 95 0 Color
255 95 95 Color
255 95 135 Color
255 95 175 Color
255 95 215 Color
255 95 255 Color
255 135 0 Color
255 135 95 Color
255 135 135 Color
255 135 175 Color
255 135 215 Color
255 135 255 Color
255 175 0 Color
255 175 95 Color
255 175 135 Color
255 175 175 Color
255 175 215 Color
255 175 255 Color
255 215 0 Color
255 215 95 Color
255 215 135 Color
255 215 175 Color
255 215 215 Color
255 215 255 Color
255 255 0 Color
255 255 95 Color
255 255 135 Color
255 255 175 Color
255 255 215 Color
255 255 255 Color
8 8 8 Color
18 18 18 Color
28 28 28 Color
38 38 38 Color
48 48 48 Color
58 58 58 Color
68 68 68 Color
78 78 78 Color
88 88 88 Color
98 98 98 Color
108 108 108 Color
118 118 118 Color
128 128 128 Color
138 138 138 Color
148 148 148 Color
158 158 158 Color
168 168 168 Color
178 178 178 Color
188 188 188 Color
198 198 198 Color
208 208 208 Color
218 218 218 Color
228 228 228 Color
238 238 238 Color
Alles anzeigen
#!/bin/sh
DATE=`date +"%m-%Y"`
NAME="Backup"
FULLNAME="$NAME-$DATE"
SOURCE=${HOME}/Dokumente/
TARGET=/media/Daten/Backups/Monatsbackups/$FULLNAME/
TARGET2=/mnt/LAN/Sicherung\ Doku/Monatsbackups/$FULLNAME/
LOG=${HOME}/Backup.log
LOGDATE=`date +"%d-%m-%Y"`
TMPLOG=${HOME}/Backup.log.tmp
EXIT=$!
if [ -e /media/Daten/Backups/Monatsbackups/$FULLNAME ]; then
echo Backup vom $LOGDATE|tee -a $TMPLOG >>$LOG
echo Sicherung auf /dev/sda3|tee -a $TMPLOG >>$LOG
rsync -avu $SOURCE $TARGET |tee -a $LOG >> $TMPLOG
echo ------------------------------------------------------------------------ |tee -a $TMPLOG >>$LOG
echo Sicherung auf /dev/sdb1|tee -a $TMPLOG >>$LOG
rsync -avu $SOURCE $TARGET2 |tee -a $LOG >> $TMPLOG
echo ------------------------------------------------------------------------ |tee -a $TMPLOG >> $LOG |tee
else
echo Backup vom $LOGDATE|tee -a $TMPLOG >>$LOG
mkdir /media/Daten/Backups/Monatsbackups/$FULLNAME
mkdir /mnt/LAN/Sicherung\ Doku/Monatsbackups/$FULLNAME/
rsync -avu $SOURCE $TARGET |tee -a $LOG >> $TMPLOG
rsync -avu $SOURCE $TARGET2 |tee -a $LOG >> $TMPLOG
echo ------------------------------------------------------------------------ |tee -a $TMPLOG >> $LOG
fi
if [ $EXIT -z ]; then
mailx -s "Backup erfolgreich" $(whoami)@$(hostname) <$TMPLOG
else
mailx -s "Backup fehlgeschlagen" $(whoami)@$(hostname) <$TMPLOG
fi
rm $TMPLOG
Alles anzeigen
Etwas verbessertes Backup-Skript. Allerdings kommt er nicht mit $TARGET2 klar. Bei Ausführung bekomme ich diesen Fehler
rsync: link_stat "/mnt/LAN/Sicherung" failed: No such file or directory (2)
rsync: mkdir "/home/tobias/Doku/Monatsbackups/Backup-12-2012" failed: No such file or directory (2)
rsync error: error in file IO (code 11) at main.c(595) [Receiver=3.0.7]
rsync: connection unexpectedly closed (9 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(601) [sender=3.0.7]
So mein Code hat jetzt erstmal nen Workaround, bis ich ne Lösung für mein Problem habe. (Siehe voriger Beitrag)
#!/bin/sh
DATE=`date +"%m-%Y"`
NAME="Backup"
FULLNAME="$NAME-$DATE"
SOURCE=${HOME}/Dokumente/
TARGET=/media/Daten/Backups/Monatsbackups/$FULLNAME/
LOG=${HOME}/Backup.log
LOGDATE=`date +"%d-%m-%Y"`
TMPLOG=${HOME}/Backup.log.tmp
EXIT=$!
if [ -e /media/Daten/Backups/Monatsbackups/$FULLNAME ]; then
echo Backup vom $LOGDATE|tee -a $TMPLOG >>$LOG
echo Sicherung auf /dev/sda3|tee -a $TMPLOG >>$LOG
rsync -avu $SOURCE $TARGET |tee -a $LOG >> $TMPLOG
echo ------------------------------------------------------------------------ |tee -a $TMPLOG >>$LOG
echo Sicherung auf /dev/sdb1|tee -a $TMPLOG >>$LOG
#rsync -avu $SOURCE $TARGETB |tee -a $LOG >> $TMPLOG
rsync -avu $SOURCE /mnt/LAN/Sicherung\ Doku/Monatsbackups/$FULLNAME/ |tee -a $LOG >> $TMPLOG
echo ------------------------------------------------------------------------ |tee -a $TMPLOG >> $LOG |tee
else
echo Backup vom $LOGDATE|tee -a $TMPLOG >>$LOG
mkdir /media/Daten/Backups/Monatsbackups/$FULLNAME
mkdir /mnt/LAN/Sicherung\ Doku/Monatsbackups/$FULLNAME/
rsync -avu $SOURCE $TARGET |tee -a $LOG >> $TMPLOG
rsync -avu $SOURCE /mnt/LAN/Sicherung\ Doku/Monatsbackups/$FULLNAME/ |tee -a $LOG >> $TMPLOG
echo ------------------------------------------------------------------------ |tee -a $TMPLOG >> $LOG
fi
if [ $EXIT -z ]; then
mailx -s "Backup erfolgreich" $(whoami)@$(hostname) <$TMPLOG
else
mailx -s "Backup fehlgeschlagen" $(whoami)@$(hostname) <$TMPLOG
fi
rm $TMPLOG
Alles anzeigen
So jetzt vorerst endgültige Fassung für mein Backup-Skript.
Wenn jemand ne Idee hat, wie ich mein Log-Problem löse (lokale Mail bein Erfolg oder Misserfolg des Backups.), der möge sie mir bitte mitteilen.)
#!/bin/sh
DATE=`date +"%m-%Y"`
NAME="Backup"
FULLNAME="$NAME-$DATE"
SOURCE=${HOME}/Dokumente/
TARGET=/media/Daten/Backups/Monatsbackups/$FULLNAME/
TARGET2=/mnt/LAN/Sicherung\ Doku/Monatsbackups/$FULLNAME/
LOG=${HOME}/Backup.log
LOGDATE=`date +"%d-%m-%Y"`
TMPLOG=${HOME}/Backup.log.tmp
if [ -e /media/Daten/Backups/Monatsbackups/$FULLNAME ]; then
echo Backup vom $LOGDATE|tee -a $TMPLOG >>$LOG
echo Sicherung auf /dev/sda3|tee -a $TMPLOG >>$LOG
rsync -avu $SOURCE $TARGET |tee -a $LOG >> $TMPLOG
echo ------------------------------------------------------------------------ |tee -a $TMPLOG >>$LOG
echo Sicherung auf /dev/sdb1|tee -a $TMPLOG >>$LOG
rsync -avu $SOURCE "$TARGET2" |tee -a $LOG >> $TMPLOG
echo ------------------------------------------------------------------------ |tee -a $TMPLOG >> $LOG |tee
else
echo Backup vom $LOGDATE|tee -a $TMPLOG >>$LOG
mkdir /media/Daten/Backups/Monatsbackups/$FULLNAME
mkdir /mnt/LAN/Sicherung\ Doku/Monatsbackups/$FULLNAME/
rsync -avu $SOURCE $TARGET |tee -a $LOG >> $TMPLOG
rsync -avu $SOURCE $TARGET2 |tee -a $LOG >> $TMPLOG
echo ------------------------------------------------------------------------ |tee -a $TMPLOG >> $LOG
fi
mailx -s "Log des Backups vom $(date +"%d.%m.%Y.%H:%M")" $(whoami)@$(hostname) <$TMPLOG
rm $TMPLOG
Alles anzeigen
using System;
using System.Globalization.Maya;
using System.SouthKorea.Music;
namespace Psy
{
/// <summary>
/// Last change by: n0straDamnUs 1566-07-02
/// </summary>
public static class GangnamStyle
{
private static void Main(string[] args)
{
for (int i = 0; i < 1000000001; i++)
{
Console.WriteLine("Horse Dance!!!");
}
DestroyWorld();
}
private static void DestroyWorld()
{
// Only Chuck Norris can calculate this result
int weAreNotChuck = 1 / 0;
}
}
}
Alles anzeigen
Mal n bisschen mit funktionen gespielt.
#!/bin/sh
DATE=`date +"%m-%Y"`
NAME="Backup"
FULLNAME="$NAME-$DATE"
SOURCE=${HOME}/Dokumente/
TARGET=/media/Daten/Backups/Monatsbackups/$FULLNAME/
TARGET2=/mnt/LAN/Sicherung\ Doku/Monatsbackups/$FULLNAME/
LOG=${HOME}/Backup.log
LOGDATE=`date +"%d-%m-%Y"`
TMPLOG=${HOME}/Backup.log.tmp
log () {
if [ $? -eq 0 ]; then
mailx -s "Backup erfolgreich" $(whoami)@$(hostname) <$TMPLOG
else
mailx -s "Backup fehlgeschlagen" $(whoami)@$(hostname) <$TMPLOG
fi
}
if [ -e /media/Daten/Backups/Monatsbackups/$FULLNAME ]; then
echo Backup vom $LOGDATE|tee -a $TMPLOG >>$LOG
echo Sicherung auf /dev/sda3|tee -a $TMPLOG >>$LOG
rsync -avu $SOURCE $TARGET |tee -a $LOG >> $TMPLOG
log
echo ------------------------------------------------------------------------ |tee -a $TMPLOG >>$LOG
echo Sicherung auf /dev/sdb1|tee -a $TMPLOG >>$LOG
log
rsync -avu $SOURCE "$TARGET2" |tee -a $LOG >> $TMPLOG
echo ------------------------------------------------------------------------ |tee -a $TMPLOG >> $LOG |tee
else
echo Backup vom $LOGDATE|tee -a $TMPLOG >>$LOG
mkdir /media/Daten/Backups/Monatsbackups/$FULLNAME
mkdir /mnt/LAN/Sicherung\ Doku/Monatsbackups/$FULLNAME/
rsync -avu $SOURCE $TARGET |tee -a $LOG >> $TMPLOG
rsync -avu $SOURCE $TARGET2 |tee -a $LOG >> $TMPLOG
log
echo ------------------------------------------------------------------------ |tee -a $TMPLOG >> $LOG
fi
rm $TMPLOG
Alles anzeigen
Habe das Skript allerdings noch nicht testen können.
Wird ja inzwischen richtig schön das Script
Ich kann es heute Abend mal testen, wenn du möchtest.
Wird ja inzwischen richtig schön das Script
Ich kann es heute Abend mal testen, wenn du möchtest.
OK. Mein Problem ist halt, dass ich sowohl beim Fehlschlagen, als auch beim erfolgreichen Durchlauf ne (lokale) Mail bekommen soll, was mit dem vorigen Skript nicht machbar war. Momentan werden die Funktion log() scheinbar mehrere Mails gesendet. Das muss ich noch fixen. Mal schauen wie ich das anstelle.
#!/bin/sh
DATE=`date +"%m-%Y"`
NAME="Backup"
FULLNAME="$NAME-$DATE"
SOURCE=${HOME}/Dokumente/
TARGET=/media/Daten/Backups/Monatsbackups/$FULLNAME/
LOG=${HOME}/Backup.log
LOGDATE=`date +"%d-%m-%Y"`
TMPLOG=${HOME}/Backup.log.tmp
EXIT=$?
if [ -e /media/Daten/Backups/Monatsbackups/$FULLNAME ]; then
echo Backup vom $LOGDATE|tee -a $TMPLOG >>$LOG
echo Sicherung auf /dev/sda3|tee -a $TMPLOG >>$LOG
rsync -avu $SOURCE $TARGET |tee -a $LOG >> $TMPLOG
echo ------------------------------------------------------------------------ |tee -a $TMPLOG >>$LOG
echo Sicherung auf /dev/sdb1|tee -a $TMPLOG >>$LOG
#rsync -avu $SOURCE $TARGETB |tee -a $LOG >> $TMPLOG
rsync -avu $SOURCE /mnt/LAN/Sicherung\ Doku/Monatsbackups/$FULLNAME/ |tee -a $LOG >> $TMPLOG
echo ------------------------------------------------------------------------ |tee -a $TMPLOG >> $LOG |tee
else
echo Backup vom $LOGDATE|tee -a $TMPLOG >>$LOG
mkdir /media/Daten/Backups/Monatsbackups/$FULLNAME
mkdir /mnt/LAN/Sicherung\ Doku/Monatsbackups/$FULLNAME/
rsync -avu $SOURCE $TARGET |tee -a $LOG >> $TMPLOG
rsync -avu $SOURCE /mnt/LAN/Sicherung\ Doku/Monatsbackups/$FULLNAME/ |tee -a $LOG >> $TMPLOG
echo ------------------------------------------------------------------------ |tee -a $TMPLOG >> $LOG
fi
if [ $EXIT -eq "0" ]; then
mailx -s "Backup erfolgreich" $(whoami)@$(hostname) <$TMPLOG
else
mailx -s "Backup fehlgeschlagen" $(whoami)@$(hostname) <$TMPLOG
fi
rm $TMPLOG
Alles anzeigen
Hat einer von euch ne Idee, wie ich die Log-Funktion zum laufen bekomme?
Mal ganz davon abgesehen davon, die Existenz von VCS wie z.B. Git ist dir bekannt?
Benutze ich nie. Und ich habe schon viele Softwareprojekte gemacht
Hat einer von euch ne Idee, wie ich die Log-Funktion zum laufen bekomme?
Du musst deinen Code noch mal umschreiben. So erfasst $EXIT nur den Rückgabewert von date bzw. sogar die Wertzuweisung an $TMPLOG, die beide natürlich immer erfolgreich ablaufen. Und selbst wenn du den Code hinter die letzte Backup-Zeile schiebst, wird immer noch der Rückgabewert von tee anstatt rsync erfasst.
Bash (#!/bin/bash) bietet dir dafür das Array PIPESTATUS an, das dir ermöglicht, auf alle einzelnen Rückgabewerte der Befehle in einer Pipe zuzugreifen.
Selbst dann bekommst du aber eine Erfolgsmeldung, wenn dein erstes Backup fehlschlägt und das zweite nicht. Du musst beide Rückgabewerte in Betracht ziehen:
Du musst deinen Code noch mal umschreiben. So erfasst $EXIT nur den Rückgabewert von date bzw. sogar die Wertzuweisung an $TMPLOG, die beide natürlich immer erfolgreich ablaufen. Und selbst wenn du den Code hinter die letzte Backup-Zeile schiebst, wird immer noch der Rückgabewert von tee anstatt rsync erfasst.
Bash (#!/bin/bash) bietet dir dafür das Array PIPESTATUS an, das dir ermöglicht, auf alle einzelnen Rückgabewerte der Befehle in einer Pipe zuzugreifen.
Selbst dann bekommst du aber eine Erfolgsmeldung, wenn dein erstes Backup fehlschlägt und das zweite nicht. Du musst beide Rückgabewerte in Betracht ziehen:
Merci. Konnte deinen Code erfolgreich implementieren. Danke
So mein Code sieht nun so aus:
#!/bin/bash
DATE=`date +"%m-%Y"`
NAME="Backup"
FULLNAME="$NAME-$DATE"
SOURCE=${HOME}/Dokumente/
TARGET=/media/Daten/Backups/Monatsbackups/$FULLNAME/
TARGETB=/mnt/LAN/Sicherung\ Doku/Monatsbackups/$FULLNAME/
LOG=${HOME}/Backup.log
LOGDATE=`date +"%d-%m-%Y"`
TMPLOG=${HOME}/Backup.log.tmp
if [ -e /media/Daten/Backups/Monatsbackups/$FULLNAME ]; then
echo Backup vom $LOGDATE|tee -a $TMPLOG >>$LOG
echo Sicherung auf /dev/sda3|tee -a $TMPLOG >>$LOG
rsync -avu $SOURCE $TARGET |tee -a $LOG >> $TMPLOG; RSYNC1_RET=${PIPESTATUS[0]}
echo ------------------------------------------------------------------------ |tee -a $TMPLOG >>$LOG
echo Sicherung auf /dev/sdb1|tee -a $TMPLOG >>$LOG
rsync -avu $SOURCE "$TARGETB" |tee -a $LOG >> $TMPLOG; RSYNC2_RET=${PIPESTATUS[0]}
echo ------------------------------------------------------------------------ |tee -a $TMPLOG >> $LOG |tee
else
echo Backup vom $LOGDATE|tee -a $TMPLOG >>$LOG
mkdir /media/Daten/Backups/Monatsbackups/$FULLNAME
mkdir /mnt/LAN/Sicherung\ Doku/Monatsbackups/$FULLNAME/
rsync -avu $SOURCE $TARGET |tee -a $LOG >> $TMPLOG; RSYNC1_RET=${PIPESTATUS[0]}
rsync -avu $SOURCE $TARGETB |tee -a $LOG >> $TMPLOG; RSYNC2_RET=${PIPESTATUS[0]}
echo ------------------------------------------------------------------------ |tee -a $TMPLOG >> $LOG
fi
if [ $RSYNC1_RET -eq 0 -a $RSYNC2_RET -eq 0 ]; then
mailx -s "Backup erfolgreich" $(whoami)@$(hostname) <$TMPLOG
else
mailx -s "Backup fehlgeschlagen" $(whoami)@$(hostname) <$TMPLOG
fi
rm $TMPLOG
Alles anzeigen
Vielen Dank noch mal an DosAmp, der mch auf die Lösung gebracht hat.
Weil ich auf die Schnelle keinen Download für Window Hidie mehr finden konnte, habe ich aus meiner C-Programmiersucht heraus ein kleines Tool geschrieben, das das manuelle Ein- und Ausblenden von Fenstern unter Windows erlaubt.
C>windowtoggle /?
Interactive tool for toggling a window's visibility.
windowtoggle [/V]
/V Only show visible windows.
Ich habe auch eine ANSI-Version gebaut, aber noch funktioniert diese nicht ganz zufriedenstellend unter Windows 9x.
Gegebenfalls bastele ich da noch eine minimale GUI mit Visual C++ rundherum.
hust ... hab gerade mal ein kleines Feuerwerk mit debug für DOS gebastelt
n feuer.com
a
mov ax, 13
int 10
mov ax, a000
mov es, ax
mov cx, ffff
in al, 40
rep stosb
in al, 60
dec al
jnz 010a
ret
rcx
18
w
q
Alles anzeigen
und in eine ausführbare datei bekommt ihr es so ... kopiert alle zeilen des codes in eine txt datei, abspeichern und unter dos dann das hier eingeben
schon habt ihr eine feuer.com und schönes buntes geflacker auf dem bildschirm ...
Have fun
Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!