Restic client auf 64 Bit Linux installieren

Mittwoch, 28. April, 2021

Restic [1] ist ein in Go geschriebenes Backup-Tool für die Kommandozeile … oder zum Skripten. Es besteht aus einem einzigen Binary und hat keinerlei Abhängigkeiten zu Libs, Paketen oder irgendwas. Es erzeugt dedulizierte Backups: initial wird ein Vollbackup gemacht und dann nie wieder - es braucht dann nur noch inkrementelle Backups. Restic gibt es für Windows/ Mac/ Linux und diverse Plattformen (BSD, Solaris, Mips, … - siehe Releases (dort etwas scrollen :-) [2]).

Das hat was.

Daheim werfe ich gerade einen Http-Server als Backup-Endpoint auf die Synology [3].

Auf Systeme am Institut habe ich grob 150 Linux-Systeme - mit altem und neuen Linux Varianten verschiedener Distributionen. Ich habe ein Bash Skript geschrieben, das mit wget das Binary des Restic Client holt, entpackt und ins /usr/bin legt. Wer es für ein anderes OS oder Architektur braucht, müsste den Suffix “_linux_amd64” ersetzen … oder aber auch dynamisch machen (mit

uname -a

könnte man hinkommen).

#!/usr/bin/env bash

# ------------------------------------------------------
# CONFIG
# ------------------------------------------------------
resticversion=0.12.0
doLink=0

installdir=/usr/bin
resticfile=restic_${resticversion}_linux_amd64
downloadfile=${resticfile}.bz2
downloadurl=https://github.com/restic/restic/releases/download/v${resticversion}/${downloadfile}

# ------------------------------------------------------
# MAIN
# ------------------------------------------------------
echo
echo "##### INSTALL RESTIC CLIENT into $installdir #####"
echo

echo ----- DOWNLOAD
if [ ! -f "${downloadfile}" ]; then
         wget -O "${downloadfile}.running" -S "${downloadurl}" 
                 && mv "${downloadfile}.running" "${downloadfile}"

else
         echo SKIP download
fi
echo

echo ----- UNCOMPRESS
bzip2 -d "${downloadfile}"
echo

echo ----- INSTALL
mv "${resticfile}" "${installdir}"
chmod 755 "${installdir}/${resticfile}"
rm -f "${installdir}/restic" 2>/dev/null
test $doLink -eq 0 || ln -s "${installdir}/${resticfile}" "${installdir}/restic"
test $doLink -eq 0 && mv "${installdir}/${resticfile}" "${installdir}/restic"

echo
echo ----- SELF-UPDATE
restic self-update
echo
echo ----- RESULT:
test $doLink -eq 0 || ls -l "${installdir}/${resticfile}" 
ls -l "${installdir}/restic"
echo
echo ----- CURRENT VERSION:
restic version
echo
echo ----- DONE

weiterführende Links:

  1. https://restic.net/ Homepage von Restic
  2. Github: Restic Releases
  3. Github: Skript zur Installation eines Restic Http Servers auf einer Synology

Chocolatey - veraltete Programm-Einträge löschen

Montag, 23. Mai, 2016

Problem:

Ich habe mit Chocolatey Programme deinstalliert, z.B.

C:\Users\Axel>choco uninstall Quicktime

Aber dennoch verbleiben einige in der Liste der lokalen Anwendungen:


C:\Users\Axel>choco list -lo

7zip.commandline 16.01
7zip.install 16.01
AdobeAIR 20.0.0.233
autohotkey.portable 1.1.23.07
avirafreeantivirus 14.0.6.552
chocolatey 0.9.9.12
ChocolateyGUI 0.13.2
ConEmu 16.5.15.0
Far 3.0.4242
ffmpeg 3.0.1
flashplayeractivex 21.0.0.242
flashplayerplugin 14.0.0.179
javaruntime 8.0.73
jre8 8.0.91
netbeans-php 8.0
PDFXChangeViewer 2.5.317
Pencil 2.0.3
PowerShell 5.0.10586.20151218
Quicktime 7.7.5   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
SwissFileKnife 1.6.9
sysinternals 2016.04.28
virtualbox 5.0.20.106931
VirtualBox.ExtensionPack 5.0.20.106931
23 packages installed.

Lösung

Man gehe in das Lib Verzeichnis von Chocolatey

C:\Users\Axel>cd "C:\ProgramData\chocolatey\lib"

C:\Program\Data\chocolatey\lib>dir
 Datenträger in Laufwerk C: ist A
 Volumeseriennummer: 4C76-01F1

 Verzeichnis von C:\ProgramData\chocolatey\lib

23.05.2016  21:11    <DIR>          .
23.05.2016  21:11    <DIR>          ..
21.05.2016  13:14    <DIR>          7zip.commandline
21.05.2016  14:30    <DIR>          7zip.install
31.03.2016  23:40    <DIR>          AdobeAIR
21.05.2016  13:15    <DIR>          autohotkey.portable
13.08.2014  20:33    <DIR>          avirafreeantivirus.14.0.6.552
31.03.2016  23:48    <DIR>          chocolatey
17.11.2014  00:21    <DIR>          chocolatey.0.9.8.28
23.05.2016  21:08    <DIR>          ChocolateyGUI
21.05.2016  13:15    <DIR>          ConEmu
16.05.2015  10:32    <DIR>          Far
21.05.2016  13:16    <DIR>          ffmpeg
21.05.2016  13:17    <DIR>          flashplayeractivex
23.05.2016  21:11    <DIR>          flashplayerplugin
21.05.2016  13:20    <DIR>          javaruntime
21.05.2016  14:38    <DIR>          jre8
13.08.2014  21:08    <DIR>          netbeans-php.8.0
21.05.2016  13:20    <DIR>          PDFXChangeViewer
21.05.2016  14:34    <DIR>          Pencil
23.05.2016  21:08    <DIR>          PowerShell
21.05.2016  15:14    <DIR>          Quicktime   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
16.05.2015  11:06    <DIR>          SwissFileKnife
21.05.2016  13:21    <DIR>          sysinternals
21.05.2016  14:27    <DIR>          virtualbox
21.05.2016  14:29    <DIR>          VirtualBox.ExtensionPack
               0 Datei(en),              0 Bytes
              26 Verzeichnis(se), 337'768'534'016 Bytes frei

Hier habe ich das gleichnamige Verzeichnis gelöscht

C:\ProgramData\chocolatey\lib>del /S Quicktime

Möchten Sie "C:\ProgramData\chocolatey\lib\Quicktime*" löschen (J/N)? J
Datei wurde gelöscht - C:\ProgramData\chocolatey\lib\Quicktime\Quicktime.7.7.5.nupkg

Anm:
ohne Garantie … ggf. in ein anderes Verzeichnis Verschieben, statt zu löschen.

… aber dann ist Quicktime bei mir auch weg gewesen:

C:\ProgramData\chocolatey\lib>choco list -lo

7zip.commandline 16.01
7zip.install 16.01
AdobeAIR 20.0.0.233
autohotkey.portable 1.1.23.07
avirafreeantivirus 14.0.6.552
chocolatey 0.9.9.12
ChocolateyGUI 0.13.2
ConEmu 16.5.15.0
Far 3.0.4242
ffmpeg 3.0.1
flashplayeractivex 21.0.0.242
flashplayerplugin 14.0.0.179
javaruntime 8.0.73
jre8 8.0.91
netbeans-php 8.0
PDFXChangeViewer 2.5.317
Pencil 2.0.3
PowerShell 5.0.10586.20151218
SwissFileKnife 1.6.9
sysinternals 2016.04.28
virtualbox 5.0.20.106931
VirtualBox.ExtensionPack 5.0.20.106931
22 packages installed.

weiterführende Links:

  1. https://chocolatey.org/

Sicherheitswarnung bei Programmverknüpfungen nach Win10 Update

Samstag, 6. Februar, 2016

Irgendwie nervt es. Es gibt diese Symbolleiste “Links” wo man Favouriten als Programmverknüpfungen ablegen kann.
2016-02-06-linkleiste-00.png

Mit IE-Update, mit Windows 10 Upgrade und jetzt wieder mit einem Windows10 Update kommen die Sicherheitsdialoge immer wieder aufs Neue und fragen höflich “Datei öffnen - Sicherheitswarnung … Möchten Sie diese Datei öffnen? …”

Das, was ich zu einer früheren Windows einmal erfolgreich praktizierte (icacls-Aufruf), funktioniert seit Windows 10 scheinbar nicht mehr. Dass der Order mal Links oder aber Favouriten heisst, ist an der Stelle nicht einmal das Problem. Die Methode geht einfach nicht mehr.

Schnelle Lösungen, die ich gefunden habe …

Für eine einzelne Verknüpfung die nachfolgende Variante:

(1)
Icon aus der Links Leiste einfach mit gedrückter linker Maustaste auf den Desktop ziehen und dort fallenlassen.
2016-02-06-linkleiste-01.png

(2)
Das Icon wird verschoben.
2016-02-06-linkleiste-02.png

(3)
Das Icon auf dem Desktop dann zurück in die Links-Leiste mit gedrückter linker Maustaste plus Shift-Taste ziehen.
2016-02-06-linkleiste-03.png

Icon nun aus der Link-Symbolleiste anklicken, um das Programm zu starten - der Sicherheitsdialog ist weg. Freu :-)

Um es für alle Verknüpfungen gleichzeitig zu machen, hab ich eine andere Lösung.

Man findet jenen Ordner für die Links im Explorer (Windows-Taste + E), wenn man %USERPROFILE%\Favorites\Links in die Adresszeile eingibt:
2016-02-06-linkleiste-04.png

Wenn man

  • einen neuen Ordner irgendwo anlegt
  • die Dateien aus \Favorites\Links in den Zwischen-Ordner verschiebt
  • dann zurück-kopiert

… ist der Sicherheitsdialog ebenfalls weg.
Ach ja, den Zwischenordner kann man dann löschen.

Ja und sowas wiederum kann man automatisieren und eine Bat-Datei schreiben - quick and dirty einmal so:

set linkdir=%USERPROFILE%\Favorites%\Links
set tmpdir=%TEMP%\Links

mkdir "%tmpdir%" 
move "%linkdir%*.*" "%tmpdir%"
dir "%linkdir%" "%tmpdir%"
pause
copy "%tmpdir%*.*" "%linkdir%"
dir "%linkdir%" "%tmpdir%"
pause
rmdir /s /q "%tmpdir%"

Update vom 12.08.2017
Und mal wieder funktionierte der Trick nicht mehr … aber ich habe etwas gefunden (s.a. Screenshots unten):

  1. Im Explorer zu C:\Users\[Benutzername]\ navigieren und auf “Favoriten” die rechte Maustaste und Eigenschaften wählen.
  2. Im Tab Sicherheit waren “komische” unbekannte User (mit einer SID Nummer). Mit [erweitert] den Editor für die Berechtigungen wählen.
  3. Hier die falschen Benutzer entfernen. Und [Übernehmen] … und [OK]. Durch die aktive Vererbung werden sie in den Unterelementen, zu denen auch der Links-Ordner gehört, ebenfalls entfernt
  4. Das Skript starten, das Links temporär wegschiebt und dann zurückkopiert (entspricht der Beschreibung oben)
  5. Falls die Icons nach dem Zurückkopieren nicht da sind: Die Symbolleiste “Links” ausblenden (rechte Maustaste in der Taskbar -> Symbolleisten -> Links anklicken) … und dann wieder einblenden.

2017-08-12-favoriten-mit-unbekanntem-user-01.png 2017-08-12-favoriten-mit-unbekanntem-user-02.png

Viel Glück!

weiterführende Links:

  1. alter Blog-Eintrag Sicherheitswarnung bei Programmverknüpfungen nach Installation des IE 10
  2. Kommando copy
  3. Kommando dir
  4. Kommando mkdir
  5. Kommando move
  6. Kommando pause
  7. Kommando set

Cygwin - Installation per Kommandozeile: apt-cyg

Sonntag, 22. Februar, 2015

Mit Cygwin holt man sich Linux Tools auf MS Windows. Nicht nur die Linux-Befehle, auch Dienste lassen sich installieren, wie z.B. OpenSSH.

Allgemein erfolgt die Installation mit der setup.exe und einer Paketauswahl per Mausklick (ja, es gibt natürlich auch einen Filter, wo man seinen Suchtext eingeben kann). Aber dennoch fehlt ein Kommandozeilen-Tool zum Suchen und installieren neuer Pakete, wie bei den Distributionen.

Just getestet und für gut befunden habe ich apt-cyg.

In der Bash ist es mit 2 Kommandos schnell installiert:

$ lynx -source rawgit.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg
$ install apt-cyg /bin

Und dann hat man, wie in Ubuntu, ein apt ähnliches Programm.

$ apt-cyg
usage: apt-cyg [command] [options] [packages]

Commands:
   install     Install packages
   remove      Remove packages
   update      Update setup.ini
   download    Download only - do NOT install or unpack archives
   show        Displays the package records for the named packages
   depends     Performs recursive dependency listings
   rdepends    Display packages which require X to be installed,
               AKA show reverse dependencies
   list        List packages matching given pattern. If no pattern is given,
               list all installed packages.
   category    List packages matching given category
   listfiles   List files owned by packages
   search      Search for a filename from installed packages
   searchall   Search for a filename from all available packages

Options:
   -c, --cache <dir>      set cache
   -f, --file <file>      read package names from file
   -m, --mirror <url>     set mirror
   --help
   --version

Nun sind Pakete schneller installierbar … man sucht in der Liste der vorhandenen Pakete

$ apt-cyg searchall [Begriff]

… und installiert es

$ apt-cyg install ncftp

Fertig :-)

apt-cyg selbst ist ein Bash-Skript. Es läuft somit auf der 32-bit und 64-Bit Version von Cygwin gleichermassen.

Weiterführende Links

  1. Cygwin
  2. apt-cyg auf Github
  3. pcwdld.com: Einführung im Cygwin (en)

NTFS: in den ACLs rekursiv einen Benutzer hinzufügen

Donnerstag, 22. Januar, 2015

Auf unserem Firmen-Fileserver sollte ein Benutzer zusätzlich berechtigt werden, das NTFS zu lesen.

Das Problem: Wenn man bei einem Startverzeichnis die Rechte gibt, wird dieses dann soweit nach unten vererbt, bis es auf irgendenem Verzeichnis andere Rechte gibt. So ist im Basisverzeichnis der Zugang für alle Mitarbeiter, einige Ebenen tiefer sind Projektordner, Protokolle, … verschiedenste Ordner halt. Bei jedem einzelnen Projektordner stoppt also der Vererbungsmechanismus und man muss bei jedem dieser Projektordner den Benutzer erneut hinzufügen.

Das wollte ich nicht von Hand und hunderten von Klicks erledigen.

Die nachfolgende Batchdatei sucht ab einem Startverzeichnis rekursiv alle Verzeichnisse (dir /s /b [Verzeichnis]).

Auf jedem Verzeichnis wird iacls aufgerufen (das zeigt die Berechtigungen an) und in der Ausgabe wird geschaut, ob der User bereits drin ist.

Ist der User nicht drin, gibt es einen Aufruf für die subroutine addUser. Dort wird der Benutzer (rekursiv) hinzugefügt und auf ein Return gewartet (aber das nur zur Kontrolle).

@echo off
rem ======================================================================
::
::    Skript zum Hinzufuegen eines einzelnen Users in die bestehenden
::    ACLs
::
::  ----------------------------------------------------------------------
::  2015-01-22  Axel Hahn
rem ======================================================================
set line=-------------------------------------------------------------------------------
 
set mydir=nas-blabla\irgend\wo
set cuser=DOMAIN\newuser
 
echo.
echo %line%
echo user %cuser% hinzufuegen in %mydir%
echo %line%
 
for /F "tokens=*" %%a in ('dir /b /s /a:d %mydir%') do (
      echo ... %%a
      icacls "%%a" | findstr "%cuser%" >nul || call :addUser "%%a"
)
echo.
echo fertig.
timeout /t 100
exit
 
:addUser
echo ...... adding %cuser%
icacls %1 /grant "%cuser%":(OI)(CI)(RX)
set /p dummy=Return

Weiterführende Links

Chocolatey: Ersatz für choco list mit lokalem Cache

Freitag, 15. August, 2014

Ich habe mich mit Chocolatey angefreundet, verfluche aber die langsame Paketsuche.
Was man da machen kann? Nun, eine Batch-Datei schreiben, die die Paketliste lokal speichern kann und diesen Cache durchsucht.

Die Funktion ist nicht mit choco list [Suchbegriff] identisch, da hier auch Metainformationen gesucht werden - die Suche in meinem Skript geht rein auf Paketnamen, ist dafür aber wirklich massiv schneller!!

Der Cache wird 1 x pro Tag erneuert - oder bei manuellem Aufruf mit Parameter -u (=update).
Die Hilfe erscheint bei Aufruf ohne einen Parameter:


===== CHOCO PACKAGE SEARCH WITH LOCAL CACHE =====

DESCRIPTION:
clist2 is a choco list to search public packages that uses a local cache

SYNTAX:

  clist2 [searchstring]
     searchstring: part of a package, case insensitive,
     regex allowed i.e. "^fire" to find the firefox
     clist2 "^fire"

  clist2 -i
     infos about cachefile

  clist2 -u
     force update of local package list (it takes a while)

[Weiterlesen…]

Schoko Nougat

Mittwoch, 13. August, 2014

Zugegeben, der Titel ist eine schlechte Übersetzung des englischen Originals.
Unter Windows gibt es ein Tool NuGet - ein Paketmanager für Entwicklertools unter MS Windows. Chocolatey NuGet greift die Idee mitsamt Technologie auf und ist ein Paketmanager für (alle möglichen) Windows Applikationen. Quasi ein apt-get, yum oder rpm für MS Windows.

2014-08-13-chocolatey.png

Unter Chocolatey sind über 2000 Pakete (Metabeschreibungen) für die Installation verschiedenster Programme verfügbar: Flashplayer, Skype, Antivirus, Browser, Mailclient, Libreoffice, … Analog zu Linux Paketmanagern kann man per Kommandozeile Pakete suchen, installieren, updaten, deinstallieren …

Das gefällt mir ;-)
[Weiterlesen…]

Putty Agent mit private Key starten

Freitag, 5. Oktober, 2012

Bei Putty gibt es im Komplettpaket einen Agent, der sich im Systemtray als Icon ablegt. Über das Icon kann man seine vorkonfigurierten Putty-Verbindungen aufrufen.

Wenn man seinem SSH-Schlüsselpaar ein Passwort zugeordnet hat, muss man immer dieses Passwort bei einer Verbindung angeben.
Abhilfe der Passwort-Eingabe wären:
- kein Passwort im SSH-Schlüssel (nicht wirklich toll)
- den Agent das Passwort verwalten lassen (schon besser)

Der Page-Agent kann vor Aufruf einer Putty Session gestartet werden und erledigt dann die Passwort-Eingabe im Hintergrund, wenn - ja “wenn” - man die SSH Keys einmal geladen hat. Den Agent starten und dann immer wieder interaktiv die zu Keys laden, ist nicht schlau. Zum Glück gibt es ja Kommandozeilenparameter, was uns doch gleich zum Thema Batch führt ;-)

Im Ordner, wo die putty.exe und die pagent.exe liegen, kann man eine Batch-Datei anlegen, die die pagent.exe startet. Man kann als Parameter angeben:

pageant.exe [Schlüssel 1] [Schlüssel 2] ... [Schlüssel N]

z.B.:

start @~dp0/../pageant.exe c:/.ssh/id_mein_privater_key1.ppk

Beim Start dessen wird man nur noch einmal nach dem Passwort der SSH_keys-gefragt, aber bei nachfolgendem Aufbau einer Putty-Session dann nicht mehr.

Links:

SYNTH1 - Ini-Datei mit Soundbanken auffüllen

Donnerstag, 4. Oktober, 2012

Im VST Plugin Synth1 kann man andere Soundbanken importieren, um viel mehr Instrumenten-Voreinstellungen abzurufen. Man braucht zum einen die Instrumente.

suche nach “synth1 presets” in der Suchmaschine deiner Wahl

Die legt man am besten beim Installationsordner von Synth1 in einem Unterverzeichnis “presets”, z.B. C:/VST/Synth1/presets/ ab.

Und dann gibt es noch eine benutzerspezifische INI-Datei unter

%appdata%/Daichi/Synth1/Synth1.ini

Darin sind einige Einträge der Art bankfolder[Zähler]=[Pfad-mit-Presets]

Nun müsste man weitere Zeilen eintragen, wobei hinter bankfolder der Zähler hochzählt und dann der vollständige Pfad folgt. Das macht man bei 50 Verzeichnissen aber ungern von Hand. Also schreibt man schnell eine Batchdatei…
Nachfolgender Code ist als Bat-Datei im presets-Ordner zu speichern (C:/VST/Synth1/presets/) und zu starten. Am Ende erhält man dann 2 Editorfenster, wo man die erzeugten INI-Einträge in die bestehende Synth1.ini übertragen muss.

@echo off
rem ----------------------------------------------------------------------

rem -- setze i auf den Wert des ersten freien bankfolders
set i=0

set mydir=%~dp0
set out=%mydir%synth1_banks.ini
set ini=%appdata%DaichiSynth1Synth1.ini

rem ----------------------------------------------------------------------
echo ; generated %date% %time% >%out%
SETLOCAL EnableDelayedExpansion
for /F "tokens=*" %%a in ('dir /A:D /b') do (
	echo bankfolder!i!=%mydir%%%a >>%out%
	set /a i=!i!+1
)

rem ----------------------------------------------------------------------
start %ini%
start %out%

rem ----------------------------------------------------------------------

5.1-WAV-Dateien zu AC3 umwandeln leicht gemacht

Sonntag, 5. September, 2010

Manche Probleme schafft sich der Mensch ja selbst. So kann ich mit Magix Musikmaker 5.1-Musik erstellen, aber ein Export nach Mp3 erzeugt konsequent lediglich Stereo-Dateien. Wahrscheinlich, weil kein Mp3-Pro-Encoder dem Programm beiliegt - aber eine Fehlermeldung kommt auch nicht.

Es bleibt der Export nach WAV oder Windows Media, um 6 Kanäle zu behalten.
4:43 min Musik erzeugen eine 143 MB grosse WAV-Datei. Und Windows Media … das passt mir grad nicht ;-)

Nun hab ich also meine 5.1 Wave-Datei. Klingt zwar gut, ist aber noch ein klitzekleinwenig zu gross.

Meine Konvertierungsversuche mit VLC oder ffmpeg scheiterten kläglich. Ffmpeg weigerte sich, ein Audio mit mehr als 2 Audiokanälen zu lesen. Beim Export mit VLC erhielt ich grausame akustische Resultate - warum auch immer - soviel liess sich ja auch gar nicht einstellen.
[Weiterlesen…]