This commit is contained in:
2024-10-13 23:21:42 +02:00
commit bbaf7b7487
14 changed files with 2026 additions and 0 deletions

View File

@@ -0,0 +1,6 @@
gpx entpacken
*.gpx nach activity.gpx umbenennen
F=$(cat activity.gpx | tr -d "'")
echo "update activities set a_gpx = '$F' where a_activity=activity;" | mysql -u andregeissler_bikeparts -p'K01v1kk0!' -Dandregeissler_bikeparts -h vesta.agserver.de

60
bpt.pl Normal file
View File

@@ -0,0 +1,60 @@
#!/usr/bin/perl
use v5.10;
use experimental qw( switch );
use strict;
use lib '.';
use bptm;
use IO::Prompter;
use Term::ANSITable;
use Term::Clear;
use DBI;
use JSON;
my $config_file = './config/config.txt';
my $debug = 0;
sub delmaintenance ($);
sub edittype ($);
#sub editpart ($);
#sub editset ($);
sub edittrack ($);
sub editmaintenance ($);
### HAUPTPROGRAMM ###
Term::Clear::clear();
while ( 1 ) {
read_config ($config_file);
my ($act,$ent,$show) = check_parameter ();
debug ("main", "zeige parameter $act $ent", $debug);
exit 0 if ( $act eq 'exit' );
my $sub="$act$ent";
no strict 'refs';
&$sub($show);
prompt (-s1, "\nWeiter?");
}
exit 0;
### SUBROUTINEN ###
sub delmaintenance ($) {
;
}
sub edittype ($) {
;
}
sub edittrack ($) {
;
}
sub editmaintenance ($) {
;
}
__END__

120
bptar.pl Normal file
View File

@@ -0,0 +1,120 @@
#!/usr/bin/perl
use v5.10;
use experimental qw( switch );
use strict;
use lib '.';
use bptm;
use IO::Prompter;
use Term::ANSITable;
use Term::Clear;
use DBI;
use JSON;
my $config_file = './config/config.txt';
my $debug = 0;
sub showtrack ($);
sub addpart ($);
sub addset ($);
sub addtype ($);
sub delpart ($);
sub delset ($);
sub deltype ($);
sub deltrack ($);
sub delmaintenance ($);
sub edittype ($);
sub editpart ($);
sub editset ($);
sub edittrack ($);
sub editmaintenance ($);
### HAUPTPROGRAMM ###
read_config ($config_file);
addtrack("all");
exit 0;
while ( 1 ) {
read_config ($config_file);
my ($act,$ent,$show) = check_parameter ();
debug ("main", "zeige parameter $act $ent", $debug);
exit 0 if ( $act eq 'exit' );
my $sub="$act$ent";
no strict 'refs';
&$sub($show);
prompt (-s1, "\nWeiter?");
# clear screen
Term::Clear::clear();
}
exit 0;
### SUBROUTINEN ###
sub addpart ($) {
debug("addpart", "start", $debug);
}
sub addset ($) {
debug("addset", "start", $debug);
}
sub addtype ($) {
debug("addtype", "start", $debug);
}
sub delpart ($) {
debug("delpart", "start", $debug);
}
sub delset ($) {
debug("delset", "start", $debug);
}
sub deltype ($) {
debug("deltype", "start", $debug);
}
sub deltrack ($) {
debug("deltrack", "start", $debug);
}
sub delmaintenance ($) {
;
}
sub edittype ($) {
;
}
sub editpart ($) {
;
}
sub editset ($) {
;
}
sub edittrack ($) {
;
}
sub editmaintenance ($) {
;
}
__END__

1301
bptm.pm Normal file

File diff suppressed because it is too large Load Diff

7
config/config.txt Normal file
View File

@@ -0,0 +1,7 @@
DB_TYPE:mysql
DB_HOST:vesta.agserver.de
DB_PORT:3306
DB_NAME:andregeissler_bikeparts
DB_USER:andregeissler_bikeparts
DB_PASS:K01v1kk0!
INPUT:./input/

18
download.sh Normal file
View File

@@ -0,0 +1,18 @@
/usr/bin/python3 /home/andre/Dokumente/git/garmin-connect-export/gcexport.py \
--username andregeissler@posteo.de \
--password f7m8g36Ph4gDCy4 \
-c 3 \
-f json \
-d /home/andre/Dokumente/codeberg/bike-part-tracker/input/
cd /home/andre/Dokumente/codeberg/bike-part-tracker/input/
for I in `ls activity_*_summary.json`
do
echo $I
zip $I.zip $I
done
#shopt -s extglob
#$(rm -v !(*.zip))
find /home/andre/Dokumente/codeberg/bike-part-tracker/input/ -type f -not -name '*.zip' -delete

115
get_all.sh Normal file
View File

@@ -0,0 +1,115 @@
#!/bin/bash
# python modul garmin export
# programmpfad /home/andre/.local/lib/python3.6/site-packages/garminexport
# dateien nicht auffindbar: /mnt/daten1tb/1_USER/andre/.tmp/.not_found
# dateien erledigt: /mnt/daten1tb/1_USER/andre/.tmp/.backed
# /usr/local/bin/garmin-backup
# /home/andre/.local/lib/python3.8/site-packages/garminexport/backup.py
#
# not_found_file = ".not_found"
# backed_file = ".backed"
#
# backed_up = os.listdir(backup_dir) + _not_found_activities(backup_dir) + _backed_activities(backup_dir)
# ...
# def _backed_activities(backup_dir):
# # consider all entries in <backup_dir>/.backed as backed up
# backed_activities = []
# _backed = os.path.join(backup_dir, backed_file)
# if os.path.isfile(_backed):
# with open(_backed, mode="r") as f:
# backed_activities = [line.strip() for line in f.readlines()]
# log.debug("%d already backed activities in %s", len(backed_activities), _backed)
# return backed_activities
### /usr/local/lib/python3.9/dist-packages/garminexport/garminclient.py
### https://github.com/petergardfjall/garminexport/pull/92/files
GRMNUSR=andregeissler@posteo.de
GRMNPWD=f7m8g36Ph4gDCy4
BCKDIR=/mnt/daten1tb/1_USER/andre/.tmp
ARCHDIR=/mnt/daten1tb/1_USER/andre/garmin/activities
DAYS=3
STD=`date '+%H'`
ALL=$1
holedateityp () {
typ=$1
echo
echo hole alle $typ
python3 /home/andre/.local/bin/garmin-backup -f $typ -E --backup-dir=$BCKDIR/ --password $GRMNPWD $GRMNUSR
}
echo
echo "\$BCKDIR : $BCKDIR"
echo "\$ARCHDIR : $ARCHDIR"
echo "\$DAYS : $DAYS"
echo
echo Löschen der Dateien der letzten $DAYS Tage
# hierdurch wird erzwungen diese Dateien neu zu holen, da Änderungen hier noch möglich sind
for d in `seq 0 $DAYS`
do
files=$(date +"%Y-%m-%d" -d "-$d day")
find $BCKDIR -name "$files*" -exec rm {} \;
done
echo
echo Dateien älter als $DAYS in .backed aufnehmen und löschen
cd $BCKDIR
d=$(expr $DAYS + 1)
files=$(date +"%Y-%m-%d" -d "-$d day")
ls -1R $files* >> .backed
rm $files*
echo
echo Download der Daten ins \$BCKDIR Verzeichnis
if [ "$ALL" == "fit" ] || [ "$ALL" == "all" ]; then holedateityp fit ; fi
if [ "$ALL" == "gpx" ] || [ "$ALL" == "all" ]; then holedateityp gpx ; fi
if [ "$ALL" == "tcx" ] || [ "$ALL" == "all" ]; then holedateityp tcx ; fi
if [ "$ALL" == "summary" ] || [ "$ALL" == "all" ]; then holedateityp json_summary ; fi
if [ "$ALL" == "details" ] || [ "$ALL" == "all" ]; then holedateityp json_details ; fi
echo
echo Dateien die jünger als \$DAYS Tage sind nach \$ARCHDIR kopieren
for I in `find $BCKDIR/* -mtime -$DAYS`
do
cp -a $I $ARCHDIR/
done
echo
echo Wechsel nach \$ARCHDIR
cd $ARCHDIR/
echo
echo Dateien der selben Aktivität zusammenfassen
for I in `ls -1 | grep -v zip | awk -F'_' '{print $2}' | awk -F'.' '{print $1}' | uniq`
do
DAT=`ls -1 *$I* | head -n1 | awk -F'+' '{print $1}'`
zip -u $DAT-$I.zip *$I*
done
rm *.tcx
rm *.gpx
rm *.fit
rm *.json
echo
echo Wenn Dateien mit Name JJJJ-MM - von 1930 bis 2070 - vorhanden sind, diese zippen
for I in `seq 1900 2070`
do
ls $I-??-* > /dev/null 2>&1
if [ "$?" == "0" ]
then
echo
echo Zip $I'-??-*' nach $I.zip
zip -u $I.zip $I-??-*
echo
echo Dateien älter als \$DAYS Tage aus \$ARCHDIR löschen
find $ARCHDIR/ -name "$I-??-*" -daystart -mtime +$DAYS | xargs rm -f
fi
done

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,297 @@
-- phpMyAdmin SQL Dump
-- version 5.0.4deb2+deb11u1
-- https://www.phpmyadmin.net/
--
-- Host: localhost:3306
-- Erstellungszeit: 08. Nov 2022 um 11:30
-- Server-Version: 8.0.30
-- PHP-Version: 7.4.30
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Datenbank: `andregeissler_bikeparts`
--
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `activities`
--
CREATE TABLE `activities` (
`a_id` tinyint NOT NULL,
`a_set` text COLLATE latin1_german1_ci NOT NULL,
`a_name` text COLLATE latin1_german1_ci NOT NULL,
`a_activity` text COLLATE latin1_german1_ci NOT NULL,
`a_distance` text CHARACTER SET latin1 COLLATE latin1_german1_ci NOT NULL,
`a_duration` text CHARACTER SET latin1 COLLATE latin1_german1_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci;
--
-- Daten für Tabelle `activities`
--
INSERT INTO `activities` (`a_id`, `a_set`, `a_name`, `a_activity`, `a_distance`, `a_duration`) VALUES
(6, '', '', '9863521014', '', ''),
(7, '', '', '9793580237', '', ''),
(8, '', '', '9793947540', '', ''),
(9, '', '', '9794120404', '', ''),
(10, '', '', '9794257062', '', ''),
(12, '', '', '9805106858', '', ''),
(13, '', '', '9810963026', '', ''),
(14, '', '', '9811038039', '', ''),
(15, '', '', '9815506899', '', ''),
(16, '', '', '9817421618', '', ''),
(17, '', '', '9823500557', '', ''),
(18, '', '', '9829123183', '', ''),
(19, '', '', '9829196716', '', ''),
(20, '', '', '9835567046', '', ''),
(21, '', '', '9834485034', '', ''),
(22, '', '', '9835645067', '', ''),
(23, '', '', '9835842999', '', ''),
(24, '', '', '9836734225', '', ''),
(25, '', '', '9836983551', '', ''),
(26, '', '', '9844120666', '', ''),
(27, '', '', '9847991670', '', ''),
(28, '', '', '9851137978', '', ''),
(29, '', '', '9855412514', '', ''),
(30, '', '', '9855413000', '', ''),
(31, '', '', '9857424702', '', ''),
(32, '', '', '9860098564', '', ''),
(33, '', '', '9865325891', '', ''),
(35, '', '', '9800683564', '', ''),
(36, '', '', '9866146873', '', ''),
(37, '', '', '9867936351', '', ''),
(38, '', '', '9868212498', '', ''),
(39, '', '', '9851137977', '', ''),
(40, '', '', '9869478622', '', ''),
(41, '', '', '9871925456', '', ''),
(42, '', '', '9874991186', '', ''),
(43, '', '', '9888656375', '', ''),
(44, '', '', '9900486250', '', ''),
(45, '', '', '9900844604', '', ''),
(46, '', '', '9912499818', '', ''),
(47, '', '', '9912802788', '', ''),
(48, '', '', '9920774522', '', ''),
(49, '', '', '9921252629', '', ''),
(50, '', '', '9924139597', '', ''),
(51, 'indoor', 'Lustrafjord - Stage 2_indoor_', '9936023568', '33875.36', '4048.964');
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `maintenance`
--
CREATE TABLE `maintenance` (
`m_id` tinyint NOT NULL,
`m_date` datetime DEFAULT CURRENT_TIMESTAMP,
`p_id` tinyint DEFAULT NULL,
`p_name` text CHARACTER SET latin1 COLLATE latin1_german1_ci,
`p_text` text CHARACTER SET latin1 COLLATE latin1_german1_ci,
`p_t_id` tinyint DEFAULT NULL,
`p_time` text CHARACTER SET latin1 COLLATE latin1_german1_ci,
`p_max_time` text CHARACTER SET latin1 COLLATE latin1_german1_ci,
`p_distance` text CHARACTER SET latin1 COLLATE latin1_german1_ci,
`p_max_distance` text CHARACTER SET latin1 COLLATE latin1_german1_ci,
`p_start_date` text COLLATE latin1_german1_ci,
`p_end_date` text COLLATE latin1_german1_ci,
`p_inactive` tinyint(1) DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci;
--
-- Daten für Tabelle `maintenance`
--
INSERT INTO `maintenance` (`m_id`, `m_date`, `p_id`, `p_name`, `p_text`, `p_t_id`, `p_time`, `p_max_time`, `p_distance`, `p_max_distance`, `p_start_date`, `p_end_date`, `p_inactive`) VALUES
(33, '2022-11-05 22:44:41', 26, 'Di2 Akku', 'Di2 Akku', 17, '11602.71', '', '95250.92', '', '2022-11-01 23:07:00', '', 0);
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `parts`
--
CREATE TABLE `parts` (
`p_id` tinyint NOT NULL,
`p_name` text CHARACTER SET latin1 COLLATE latin1_german1_ci NOT NULL,
`p_text` text CHARACTER SET latin1 COLLATE latin1_german1_ci NOT NULL,
`p_t_id` tinyint NOT NULL,
`p_time` text COLLATE latin1_german1_ci,
`p_max_time` text COLLATE latin1_german1_ci,
`p_distance` text COLLATE latin1_german1_ci,
`p_max_distance` text COLLATE latin1_german1_ci,
`p_start_date` text COLLATE latin1_german1_ci,
`p_end_date` text COLLATE latin1_german1_ci,
`p_inactive` tinyint(1) NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci;
--
-- Daten für Tabelle `parts`
--
INSERT INTO `parts` (`p_id`, `p_name`, `p_text`, `p_t_id`, `p_time`, `p_max_time`, `p_distance`, `p_max_distance`, `p_start_date`, `p_end_date`, `p_inactive`) VALUES
(7, 'Rennrad', 'Opelit Feldberg Müsing Aviator', 9, '46123.214', NULL, '2333999.38', NULL, '2021-09-25', NULL, 0),
(8, 'MTB', 'Giant Terrago 2', 9, '0', NULL, '7738100', NULL, '2013-01-01', NULL, 0),
(9, 'Cross', 'Merida Crossway XT-Edition', 9, '28580.99', NULL, '16857856.55', NULL, '2019-07-31', NULL, 0),
(10, 'CS-105', 'Shimano CS-R7000-11 11-30T', 5, '39103.414', NULL, '419099.38', NULL, '2022-09-24', NULL, 0),
(11, 'CS-Ultegra', 'Shimano CS-R8000-11 11-30T', 5, '7019.77', NULL, '1921300', NULL, '2022-06-28', NULL, 0),
(12, 'CS-XT', 'Shimano CS-HG500-10 11-34T', 5, '33749.39', NULL, '3218792.97', NULL, '2022-03-14', NULL, 0),
(13, 'CN-Ultegra', 'Shimano CN-HG701-11', 11, '46123.214', NULL, '2340499.38', NULL, '2022-06-28', NULL, 0),
(14, 'CN-XT', 'Shimano CN-HG54-10', 11, '33749.39', NULL, '3218792.97', NULL, '2022-03-14', NULL, 0),
(15, 'Vortex', 'Tacx Vortex Smart', 8, '39103.414', NULL, '3991399.38', NULL, '2020-12-18', NULL, 0),
(16, 'Tacx Reifen', 'Tacx Indoor Reifen', 4, '39103.414', NULL, '419099.38', NULL, '2022-09-24', NULL, 0),
(17, 'Rennradschuhe 1', 'Northwave Core Plus 2 weiss', 7, '46123.214', NULL, '5253899.38', NULL, '2021-10-02', NULL, 0),
(18, 'MTB Schuhe 1', 'Northwave schwarz', 7, '0', NULL, '0', NULL, NULL, NULL, 0),
(19, 'Edge 530', 'Garmin Edge 530', 15, '6696.348', NULL, '34592.47', NULL, NULL, NULL, 0),
(20, 'Wahoo Cad', 'Wahoo Cadence Sensor', 14, '28327.214', NULL, '230899.38', NULL, NULL, NULL, 0),
(21, 'Wahoo Cad Bat', 'Cadence Sensor Batterie', 16, '28327.214', NULL, '230899.38', NULL, NULL, NULL, 0),
(22, 'Heart Rate Bat', 'Heart Rate Sensor Batterie', 16, '28327.214', NULL, '230899.38', NULL, NULL, NULL, 0),
(23, 'Heart Rate', 'Heart Rate Sensor', 12, '28327.214', NULL, '230899.38', NULL, NULL, NULL, 0),
(24, 'Wahoo Speed', 'Wahoo Speed Sensor', 13, NULL, NULL, NULL, NULL, NULL, NULL, 0),
(25, 'Wahoo Speed Bat', 'Speed Sensor Batterie', 16, NULL, NULL, NULL, NULL, NULL, NULL, 0),
(26, 'Di2 Akku', 'Di2 Akku', 17, '16724.504', NULL, '135648.46', NULL, '2022-11-05 22:44:00', NULL, 0);
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `sets`
--
CREATE TABLE `sets` (
`s_id` tinyint NOT NULL,
`s_name` text COLLATE latin1_german1_ci NOT NULL,
`s_text` text COLLATE latin1_german1_ci NOT NULL,
`s_p_ids` text COLLATE latin1_german1_ci NOT NULL,
`s_inactive` tinyint(1) NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci;
--
-- Daten für Tabelle `sets`
--
INSERT INTO `sets` (`s_id`, `s_name`, `s_text`, `s_p_ids`, `s_inactive`) VALUES
(1, 'mdrza', 'Fahrten zur Arbeit', '9,12,14,19,', 0),
(2, 'indoor', 'Indoor Training', '7,10,13,15,16,17,20,21,22,23,26,', 0),
(3, 'rennrad', 'Outdoor Rennrad', '7,11,13,17,19,20,21,22,23,24,25,26,', 0),
(4, 'mdrddg', 'Einkauf etc', '9,12,14,19,', 0),
(5, 'outdoor', 'Outdoor Rennrad', '7,11,13,17,19,20,21,22,23,24,25,26,', 0),
(6, 'manual', 'manuelle Zuordnung', '', 0);
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `types`
--
CREATE TABLE `types` (
`t_id` tinyint NOT NULL,
`t_name` text COLLATE latin1_german1_ci NOT NULL,
`t_text` text CHARACTER SET latin1 COLLATE latin1_german1_ci NOT NULL,
`t_inactive` tinyint(1) NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci;
--
-- Daten für Tabelle `types`
--
INSERT INTO `types` (`t_id`, `t_name`, `t_text`, `t_inactive`) VALUES
(1, 'Felge, vorne', 'Vorderradfelgen', 0),
(2, 'Felge, hinten', 'Hinerradfelgen', 0),
(3, 'Reifen, vorne', 'Vorderradreifen', 0),
(4, 'Reifen, hinten', 'Hinterradreifen', 0),
(5, 'Kassette', 'Ritzelpakete', 0),
(6, 'Kurbel', 'Kurbelsätze', 0),
(7, 'Schuh', 'Schuhpaare', 0),
(8, 'Trainer', 'Indoortrainer', 0),
(9, 'Fahrrad', 'Fahrräder', 0),
(10, 'Lenkerband', 'Lenkerband', 0),
(11, 'Kette', 'Kette', 0),
(12, 'Heart Rate', 'Herzfrequenzsensor', 0),
(13, 'Speed', 'Geschwindigkeitssensor', 0),
(14, 'Cadence', 'Trittfrequenzsensor', 0),
(15, 'Computer', 'Fahrradcomputer', 0),
(16, 'CR2032', 'Batterie', 0),
(17, 'Akku', 'Akku', 0);
--
-- Indizes der exportierten Tabellen
--
--
-- Indizes für die Tabelle `activities`
--
ALTER TABLE `activities`
ADD PRIMARY KEY (`a_id`);
--
-- Indizes für die Tabelle `maintenance`
--
ALTER TABLE `maintenance`
ADD PRIMARY KEY (`m_id`);
--
-- Indizes für die Tabelle `parts`
--
ALTER TABLE `parts`
ADD PRIMARY KEY (`p_id`);
--
-- Indizes für die Tabelle `sets`
--
ALTER TABLE `sets`
ADD PRIMARY KEY (`s_id`);
--
-- Indizes für die Tabelle `types`
--
ALTER TABLE `types`
ADD PRIMARY KEY (`t_id`);
--
-- AUTO_INCREMENT für exportierte Tabellen
--
--
-- AUTO_INCREMENT für Tabelle `activities`
--
ALTER TABLE `activities`
MODIFY `a_id` tinyint NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=52;
--
-- AUTO_INCREMENT für Tabelle `maintenance`
--
ALTER TABLE `maintenance`
MODIFY `m_id` tinyint NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=34;
--
-- AUTO_INCREMENT für Tabelle `parts`
--
ALTER TABLE `parts`
MODIFY `p_id` tinyint NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=27;
--
-- AUTO_INCREMENT für Tabelle `sets`
--
ALTER TABLE `sets`
MODIFY `s_id` tinyint NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7;
--
-- AUTO_INCREMENT für Tabelle `types`
--
ALTER TABLE `types`
MODIFY `t_id` tinyint NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=18;
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

48
mail.pl Normal file
View File

@@ -0,0 +1,48 @@
#!/usr/biin/perl
$email_from='andre@geisslermail.de';
$email_to='bpt.andre@geisslermail.de';
$email_subject='Bike Part Tracker Statistics';
$maildomain = 'geisslermail.de';
$mailhub = 'smtp.geisslermail.de:587';
$tls = 'YES'; #YES
$starttls = 'YES'; #YES
$mailuser = 'andre@geisslermail.de';
$mailpass = 'JywJ7kvfrgdp9Yr7CZ';
#$maildomain = 'posteo.de';
#$mailhub = 'posteo.de:465';
#$tls = 'YES'; #YES
#$starttls = 'NO'; #YES
#$mailuser = 'andregeissler@posteo.de';
#$mailpass = 'Sf3ZXmNWdvVwNRkC';
open SSMTP, ">/tmp/ssmtp.conf";
printf SSMTP "hostname=$maildomain\n";
printf SSMTP "mailhub=$mailhub\n";
printf SSMTP "useTLS=$tls\n";
printf SSMTP "useSTARTTLS=$starttls\n";
printf SSMTP "FromLineOverride=YES\n";
printf SSMTP "AuthUser=$mailuser\n";
printf SSMTP "AuthPass=$mailpass\n";
close SSMTP;
open HEADER, ">/tmp/header.txt";
printf HEADER "To: $email_to\n";
printf HEADER "From: $email_from\n";
printf HEADER "Subject: $email_subject\n";
# beliebeige Header einfügen
printf HEADER "Content-Type: text/html; charset=ISO-8859-1\n\n";
close HEADER;
open OUTPUT, ">/tmp/output.txt";
close OUTPUT;
`cat /tmp/header.txt /tmp/output.txt /tmp/mail.html > /tmp/mail.txt`;
#`cat tmp/mail.txt | uuenview -a -bo | ssmtp -C /tmp/ssmtp.conf $email_to`;
`cat /tmp/mail.txt | /usr/sbin/ssmtp -C /tmp/ssmtp.conf $email_to`;

21
runall.sh Normal file
View File

@@ -0,0 +1,21 @@
#!/bin/bash
d=$(date +"%Y-%m-%d_%H")
a=$(echo "log/1_$d")
x=$(echo "log/f_$d")
z=$(echo "log/2_$d")
bash /mnt/daten1tb/1_USER/andre/garmin/bpt/get_all.sh all
cd /mnt/daten1tb/1_USER/andre/garmin/bpt
echo "select * from overview" | mysql -u andregeissler_bikeparts -p'K01v1kk0!' -D andregeissler_bikeparts -h vesta.agserver.de -t > $a.log
find ../activities/ -name "????-*.zip" > $x.log
find ../activities/ -name "????-*.zip" -exec cp {} ./input \;
perl ./bptar.pl
echo "select * from overview" | mysql -u andregeissler_bikeparts -p'K01v1kk0!' -D andregeissler_bikeparts -h vesta.agserver.de -t > $z.log
cd /mnt/daten1tb/1_USER/andre/garmin/bpt/input
rm -f *.zip

33
stat.sh Normal file
View File

@@ -0,0 +1,33 @@
#!/bin/bash
echo " [client]
user=andregeissler_bikeparts
password=K01v1kk0!
host=vesta.agserver.de
database=andregeissler_bikeparts
" > mystat.conf
year=$1
if [ "$year" == "" ]
then
year=2023
fi
for months in `seq 12 -1 0`
do
month=$(printf "%02d" $months)
if [ "$month" == "00" ]
then
where="$year-%"
stat="$year"
else
where="$year-$month-%"
stat="$year-$month"
fi
query="select '$stat', ifnull(round(sum(a_distance)/1000,2),'') as km, ifnull(round(sum(a_duration)/3600,2),'') as std, ifnull(round(sum(a_hm),2),'') as hm from activities where a_date like '$where'";
PASS='K01v1kk0!'
echo "$query" | mysql --defaults-extra-file=mystat.conf -t
done
rm mystat.conf