Restic client auf 64 Bit Linux installieren
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:
Chocolatey - veraltete Programm-Einträge löschen
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:
Sicherheitswarnung bei Programmverknüpfungen nach Win10 Update
Irgendwie nervt es. Es gibt diese Symbolleiste “Links” wo man Favouriten als Programmverknüpfungen ablegen kann.
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.
(3)
Das Icon auf dem Desktop dann zurück in die Links-Leiste mit gedrückter linker Maustaste plus Shift-Taste ziehen.
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:
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):
- Im Explorer zu C:\Users\[Benutzername]\ navigieren und auf “Favoriten” die rechte Maustaste und Eigenschaften wählen.
- Im Tab Sicherheit waren “komische” unbekannte User (mit einer SID Nummer). Mit [erweitert] den Editor für die Berechtigungen wählen.
- 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
- Das Skript starten, das Links temporär wegschiebt und dann zurückkopiert (entspricht der Beschreibung oben)
- 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.
Viel Glück!
weiterführende Links:
Cygwin - Installation per Kommandozeile: apt-cyg
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
- Cygwin
- apt-cyg auf Github
- pcwdld.com: Einführung im Cygwin (en)
NTFS: in den ACLs rekursiv einen Benutzer hinzufügen
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