Wenn Du die "-Zeichen setzt, darfst du NICHT mit \ escapen. Wenn "-Zeichen gesetzt sind, einfach den Namen mit Leerzeichen hinsetzen. Wenn die "-Zeichen fehlen, so sind die \ notwendig.
EDIT: Bin mir unsicher, ob bei "-Verwendung das * funktioniert.
Wenn Du die "-Zeichen setzt, darfst du NICHT mit \ escapen. Wenn "-Zeichen gesetzt sind, einfach den Namen mit Leerzeichen hinsetzen. Wenn die "-Zeichen fehlen, so sind die \ notwendig.
EDIT: Bin mir unsicher, ob bei "-Verwendung das * funktioniert.
Ohne es getestet zu haben: Die einzige Zeile die meiner Meinung nach mit Leerzeichen Probleme hat, ist folgende:
for i in /tmp/*.mp3; do mpg123 -w /tmp/`basename $i .mp3`.wav $i; done
Einfach die beiden $i durch "$i" ersetzen, das müsste reichen und den neuen basename-Output ebenfalls mit " Quoten:
for i in /tmp/*.mp3; do mpg123 -w [b]"[/b]/tmp/$(basename [b]"[/b]$i[b]"[/b] .mp3).wav[b]"[/b] [b]"[/b]$i[b]"[/b]; done
Habe `` durch $() ersetzt, finde das lesbarer (besonders wenn es "`..`" sein soll), aber das ist Geschmackssache.
Übrigens, müsste bei der cdrecord-Zeile nicht ein /tmp/*.wav sein, anstatt nur ein *.wav?
EDIT: Bin mir unsicher, ob bei "-Verwendung das * funktioniert.
Tut es nicht. Aber kann man ändern:
mp3cd "leer zeichen/ hier/ im quote drin/"*.mp3
Den Pfad escapen, das Pattern nicht.
Ich würde noch LOCATION=${LOCATION:-.} und DEVICE=${DEVICE:-/dev/sr1} machen. Wenn übergeben (% DEVICE=/dev/sr0 mp3burn) wird es genommen, ansonsten ein Default-Wert (bzw. allgemein falls schon gesetzt, Langform wäre sowas wie [[ -z $FOO ]] || FOO=euda).
Danke thosch
Du hast indirekt eine Frage beantwortet, die ich schon länger mal wissen wollte
Mal wieder was in bash: SSH-Key eines anderen Nutzers auf einem Server eintragen. Natürlich benötigt man dazu auf dem Server sudo-Rechte.
Jaja ich weiß, ich sollte noch prüfen, ob die Parameter auch übergeben wurden.
#!/bin/bash
# Benutzung: keyrueber.sh dein_user_aufm_server zu_aendernder_nutzer server pubkeydatei
user=${1}
zieluser=${2}
server=${3}
keyfile=${4}
# yo dawg, i heard yo like scripts. so we put a script into
# your script, so you can script while you script
befehl="\
if ! [ -d /home/${zieluser}/.ssh ] ; \
then \
sudo mkdir /home/${zieluser}/.ssh ; \
sudo chown ${zieluser}:${zieluser} /home/${zieluser}/.ssh ; \
sudo chmod 600 /home/${zieluser}/.ssh/* ; \
fi ; \
echo \"$(cat ${keyfile})\" | sudo tee -a /home/${zieluser}/.ssh/authorized_keys \
sudo chown ${zieluser}:${zieluser} /home/${zieluser}/.ssh/authorized_keys"
# und los gehts
ssh ${user}@${server} "${befehl}"
Alles anzeigen
Aktualisierte Fassung von keyrueber.sh
Unterstützt nun beliebige Homeverzeichnisse und funktioniert auch ohne NOPASSWD:.
#!/bin/bash
# Benutzung: keyrueber.sh dein_user_aufm_server dein_pw_aufm_server zu_aendernder_nutzer server pubkeydatei
user=${1}
pw=${2}
zieluser=${3}
server=${4}
keyfile=${5}
homedir="\$(cat /etc/passwd | grep ^${zieluser}: | awk -F: '{print \$6}' | xargs)"
sudopw="echo ${pw} | sudo -S"
# yo dawg, i heard yo like scripts. so we put a script into
# your script, so you can script while you script
payload="\
if ! [ -d ${homedir}/.ssh ] ; \
then \
${sudopw} mkdir ${homedir}/.ssh ; \
${sudopw} chown ${zieluser}:${zieluser} ${homedir}/.ssh ; \
${sudopw} chmod 600 ${homedir}/.ssh/* ; \
fi ; \
echo \"$(cat ${keyfile})\" > /tmp/pubkey ; \
${sudopw} sh -c \"cat /tmp/pubkey >> ${homedir}/.ssh/authorized_keys\" ;
rm /tmp/pubkey ; \
${sudopw} chown ${zieluser}:${zieluser} ${homedir}/.ssh/authorized_keys"
ssh ${user}@${server} "${payload}"
Alles anzeigen
Ein kleines Userscript, das auf Reddit zumindest für Links wieder Up- und Downvotes berechnet und anzeigt:
// ==UserScript==
// @name Approximated Reddit Vote Counts
// @namespace http://dosamp.net/
// @match http://www.reddit.com/r/*/comments/*
// ==/UserScript==
var element = document.getElementsByClassName("score")[0];
var info = element.textContent.replace(/[\.,]/, "");
var match = info.match(/^(\d+) \S* \((\d+) ?%/);
if (match) {
var score = parseInt(match[1]);
var upvPerc = parseInt(match[2]);
var apprUp = Math.round(upvPerc * score / (2 * upvPerc - 100));
var apprDown = apprUp - score;
var text = " ↑≈" + apprUp + " ↓≈" + apprDown;
element.appendChild(document.createTextNode(text));
}
Alles anzeigen
Kleine Bastelei
################################
# Dateiserver-Backup #
# Author Tobias Koehler #
# Mail: tk1908@gmail.com #
# Version 1.0 #
################################
#!/bin/bash
cd /home/tkoehler
etherwake <MAC-Adresse>
sleep 30
ping -c1 biohazard.tknet.lan > /dev/null
if [$? -ne "0" ]; then
mailx -s "Server nicht erreichbar! Backup fehlgeschlagen!"
exit 1
fi
rsync -avz /data/ tkoehler@biohazard.tknet.lan::backup
ssh -i .ssh/backup_rsa tkoehler@biohazard.tknet.lan "mailx -s "Backup finished! Shutdown has been iniciated at $(date+ %Y-%m-%d-%h-%M); shutdown -h 15"
Alles anzeigen
Hat was. Vor allem erst wecken, dann backuppen und dann wieder runterfahren. Praktische Sache.
Hat was. Vor allem erst wecken, dann backuppen und dann wieder runterfahren. Praktische Sache.
Was mir noch fehlt, ist die Eingabe des Entschlüsselungspasswortes für dm_crypt.
Thx
Was mir noch fehlt, ist die Eingabe des Entschlüsselungspasswortes für dm_crypt.
alternativ keyfile?
alternativ keyfile?
Klar ist auch ne Idee. Wird wohl eh noch ne ganze Weile dauen, bis ich das umsetze.
ext_if="em0"
int_if="em1"
lan="10.18.0.0/16"
private_networks="{ 10.0.0.0/8, 172.16.0.0/16 255.255.255.255/32 127.0.0.0/8 }"
set loginterface em1
match in all scrub (no-df)
match out all scrub (random-id)
match out on $ext_if from $lan nat-to ($ext_if)
set block-policy drop
block drop in quick inet6
antispoof log quick for { $ext_if } inet
block log all
pass on $int_if all
pass out on $ext_if all
set skip on lo0
pass in inet proto icmp all
block in log on $ext_if inet proto icmp all icmp-type redir
Alles anzeigen
Für nen OpenBSD Router
Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!