1106 shaares
18 results
tagged
script
#!/bin/bash
WAN=wlp3s0
LAN=vmbr0
brctl addbr vmbr0
ip link set vmbr0 up
ip address add 192.168.53.1/24 dev vmbr0
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE
iptables -A FORWARD -i $WAN -o $LAN -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i $LAN -o $WAN -j ACCEPT
dnsmasq \
--strict-order \
--except-interface=lo \
--interface=vmbr0 \
--listen-address=192.168.53.1 \
--bind-interfaces \
--dhcp-range=192.168.53.10,192.168.53.20 \
--conf-file="" \
--pid-file=/var/run/qemu-dnsmasq.pid \
--dhcp-leasefile=/var/run/qemu-dnsmasq.leases \
--dhcp-no-override \
WAN=wlp3s0
LAN=vmbr0
brctl addbr vmbr0
ip link set vmbr0 up
ip address add 192.168.53.1/24 dev vmbr0
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE
iptables -A FORWARD -i $WAN -o $LAN -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i $LAN -o $WAN -j ACCEPT
dnsmasq \
--strict-order \
--except-interface=lo \
--interface=vmbr0 \
--listen-address=192.168.53.1 \
--bind-interfaces \
--dhcp-range=192.168.53.10,192.168.53.20 \
--conf-file="" \
--pid-file=/var/run/qemu-dnsmasq.pid \
--dhcp-leasefile=/var/run/qemu-dnsmasq.leases \
--dhcp-no-override \
Juste pour le script linux qui marche très bien pour mon certificat PFSense
#!/bin/bash
# usage : port_forward ip_destination port_destination wan_interface
sudo iptables -t nat -A PREROUTING -p tcp -i $3 --dport $2 -j DNAT --to-destination $1:$2
sudo iptables -A FORWARD -p tcp -d $1 --dport $2 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
Oui, simple oubli de ma part, shaarli doit mieux marcher maintenant...
# usage : port_forward ip_destination port_destination wan_interface
sudo iptables -t nat -A PREROUTING -p tcp -i $3 --dport $2 -j DNAT --to-destination $1:$2
sudo iptables -A FORWARD -p tcp -d $1 --dport $2 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
Oui, simple oubli de ma part, shaarli doit mieux marcher maintenant...
source : http://www.barryhubbard.com/linux/converting-pdf-to-text-using-tesseract/
imagemagic me donnant des erreurs, je suis passé par ghostscript en utilisant ce script bash.
Le résultat est parfait! Et je dois noté qu'avec cette méthode, cela consomme beaucoup moins de ressources machine.
imagemagic me donnant des erreurs, je suis passé par ghostscript en utilisant ce script bash.
Le résultat est parfait! Et je dois noté qu'avec cette méthode, cela consomme beaucoup moins de ressources machine.
if ping -c 1 ip.ip.ip.ip.ip &> /dev/null; then x; fi
Need exiftool and awk
EDIT: Voir aussi : http://blog.dorian-depriester.fr/graphisme/renommer-des-photos-en-fonction-de-leurs-dates
jhead -n%Y-%m-%d-%H-%M-%S *.jpg
EDIT: Voir aussi : http://blog.dorian-depriester.fr/graphisme/renommer-des-photos-en-fonction-de-leurs-dates
jhead -n%Y-%m-%d-%H-%M-%S *.jpg
Manipulateur de fenêtre scriptable.
Exemple concret pour mon utilisation actuelle, je veux que l'appli bidule sois lancé en fullscreen (quelque soit la manière donc celle-ci est lancé)
mkdir .devilspie
vi .devilspie/bidule.ds
(if
(is (application_name) "Bidule")
(begin
(fullscreen)
)
)
Il faut évidemment avoir lancé devilspie avant. ;-)
Exemple concret pour mon utilisation actuelle, je veux que l'appli bidule sois lancé en fullscreen (quelque soit la manière donc celle-ci est lancé)
mkdir .devilspie
vi .devilspie/bidule.ds
(if
(is (application_name) "Bidule")
(begin
(fullscreen)
)
)
Il faut évidemment avoir lancé devilspie avant. ;-)
Puis dans mon .xinitrc, j'ai une ligne
$(python /path/to/script/autodlwallpaper.py && feh --bg-scale /path/to/wallpaper.jpg) &
$(python /path/to/script/autodlwallpaper.py && feh --bg-scale /path/to/wallpaper.jpg) &
Petite fonction bash plus pratique qu'un script.
Petit script bash maison sans prétention mais rudement efficace.
A123 + B123 = A1B1A2B2A3B3 : http://metatux.fr/zerobin/?b424cfba163b303b#obOMtrykGLT9XlbLDdNRf6CkOZ/7N500MCqArmxlrhk=
(reverse) A123 + B321 = A1B3A2B2A3B1 : http://metatux.fr/zerobin/?180917463f2f98f4#FW2C6DtLh0xwc8qIKUyhy4F4ZJdhZwFaF/iXWyaScys=
A123 + B123 = A1B1A2B2A3B3 : http://metatux.fr/zerobin/?b424cfba163b303b#obOMtrykGLT9XlbLDdNRf6CkOZ/7N500MCqArmxlrhk=
(reverse) A123 + B321 = A1B3A2B2A3B1 : http://metatux.fr/zerobin/?180917463f2f98f4#FW2C6DtLh0xwc8qIKUyhy4F4ZJdhZwFaF/iXWyaScys=
Petit script perso pour me permettre de renommer en masse avec la date de dernière modification avec l'utilisation de stat et sed.
Trier un dossier de jpg par resolution. Oui, c'est encore un outils maison pour trier après un photorec. Il reste à faire la même chose pour les musique, trie par tag mp3...
Script maison pour trier le bordel d'après photorec
Triage par extension de fichier.
Triage par extension de fichier.
Je l'utilise tout les jours, mais aujourd'hui, je voulais le mettre au boulot, et j'ai oublié le nom.
EDIT: mediainfo me semble plus explicite (yaourt -S mediainfo dans community)
Script perl pour afficher des infos sur les vidéos.
#!/usr/bin/perl -w
use strict;
use warnings;
use IPC::Open3;
# example
my $filename = $ARGV[0];
my %videoInfo = videoInfo($filename);
print "duration: " . $videoInfo{'duration'} . "\n";
print "durationsecs: " . $videoInfo{'durationsecs'} . "\n";
print "bitrate: " . $videoInfo{'bitrate'} . "\n";
print "vcodec: " . $videoInfo{'vcodec'} . "\n";
print "vformat: " . $videoInfo{'vformat'} . "\n";
print "acodec: " . $videoInfo{'acodec'} . "\n";
print "asamplerate: " . $videoInfo{'asamplerate'} . "\n";
print "achannels: " . $videoInfo{'achannels'} . "\n";
#
# returns media information in a hash
sub videoInfo {
# ffmpeg command
my $ffmpeg = '/usr/bin/ffmpeg';
my %finfo = (
'duration' => "00:00:00.00",
'durationsecs' => "0",
'bitrate' => "0",
'vcodec' => "",
'vformat' => "",
'acodec' => "",
'asamplerate' => "0",
'achannels' => "0",
);
my $file = shift;
# escaping characters
$file =~ s/(\W)/\\$1/g;
open3( "</dev/null", ">/dev/null", \*ERPH, "$ffmpeg -i $file" ) or die "can't run $ffmpeg\n";
my @res = <ERPH>;
# parse ffmpeg output
foreach (@res) {
print;
# duration
if (m!Duration: ([0-9][0-9]:[0-9][0-9]:[0-9][0-9].[0-9][0-9])!) {
$finfo{'duration'} = $1;
}
# bitrate
if (m!bitrate: (\d*) kb/s!) {
$finfo{'bitrate'} = $1;
}
# vcodec and vformat
if (/Video: (\w*), (\w*),/) {
$finfo{'vcodec'} = $1;
$finfo{'vformat'} = $2;
}
# Stream #0.1(und): Audio: aac, 48000 Hz, 1 channels, s16, 64 kb/s
# acodec, samplerate, stereo and audiorate
if (m!Audio: (\w*), (\d*) Hz, (\d*)!) {
$finfo{'acodec'} = $1;
$finfo{'asamplerate'} = $2;
$finfo{'achannels'} = $3;
}
}
my $tenths = substr( $finfo{'duration'}, 9, 2 );
my $seconds = substr( $finfo{'duration'}, 6, 2 );
my $minutes = substr( $finfo{'duration'}, 3, 2 );
my $hours = substr( $finfo{'duration'}, 0, 2 );
$finfo{'durationsecs'} = ( $tenths * .01 ) + $seconds + ( $minutes * 60 ) + ( $hours * 360 );
return %finfo;
}
Script perl pour afficher des infos sur les vidéos.
#!/usr/bin/perl -w
use strict;
use warnings;
use IPC::Open3;
# example
my $filename = $ARGV[0];
my %videoInfo = videoInfo($filename);
print "duration: " . $videoInfo{'duration'} . "\n";
print "durationsecs: " . $videoInfo{'durationsecs'} . "\n";
print "bitrate: " . $videoInfo{'bitrate'} . "\n";
print "vcodec: " . $videoInfo{'vcodec'} . "\n";
print "vformat: " . $videoInfo{'vformat'} . "\n";
print "acodec: " . $videoInfo{'acodec'} . "\n";
print "asamplerate: " . $videoInfo{'asamplerate'} . "\n";
print "achannels: " . $videoInfo{'achannels'} . "\n";
#
# returns media information in a hash
sub videoInfo {
# ffmpeg command
my $ffmpeg = '/usr/bin/ffmpeg';
my %finfo = (
'duration' => "00:00:00.00",
'durationsecs' => "0",
'bitrate' => "0",
'vcodec' => "",
'vformat' => "",
'acodec' => "",
'asamplerate' => "0",
'achannels' => "0",
);
my $file = shift;
# escaping characters
$file =~ s/(\W)/\\$1/g;
open3( "</dev/null", ">/dev/null", \*ERPH, "$ffmpeg -i $file" ) or die "can't run $ffmpeg\n";
my @res = <ERPH>;
# parse ffmpeg output
foreach (@res) {
print;
# duration
if (m!Duration: ([0-9][0-9]:[0-9][0-9]:[0-9][0-9].[0-9][0-9])!) {
$finfo{'duration'} = $1;
}
# bitrate
if (m!bitrate: (\d*) kb/s!) {
$finfo{'bitrate'} = $1;
}
# vcodec and vformat
if (/Video: (\w*), (\w*),/) {
$finfo{'vcodec'} = $1;
$finfo{'vformat'} = $2;
}
# Stream #0.1(und): Audio: aac, 48000 Hz, 1 channels, s16, 64 kb/s
# acodec, samplerate, stereo and audiorate
if (m!Audio: (\w*), (\d*) Hz, (\d*)!) {
$finfo{'acodec'} = $1;
$finfo{'asamplerate'} = $2;
$finfo{'achannels'} = $3;
}
}
my $tenths = substr( $finfo{'duration'}, 9, 2 );
my $seconds = substr( $finfo{'duration'}, 6, 2 );
my $minutes = substr( $finfo{'duration'}, 3, 2 );
my $hours = substr( $finfo{'duration'}, 0, 2 );
$finfo{'durationsecs'} = ( $tenths * .01 ) + $seconds + ( $minutes * 60 ) + ( $hours * 360 );
return %finfo;
}