Wollt ihr mal eben wissen, wieviele Dateien in einem Verzeichnis sind, könnt ihr das mit folgendem Befehl:
find /home/schipsellager/grosserOrdner -type f | wc -l
Wollt ihr mal eben wissen, wieviele Dateien in einem Verzeichnis sind, könnt ihr das mit folgendem Befehl:
find /home/schipsellager/grosserOrdner -type f | wc -l
Server wurde zum Spammen missbraucht? Oder die Mail Queue vom Postfix läuft aus anderen Gründen über? Dann könnt ihr mit folgendem Befehl die komplette Queue leeren.
postsuper -d ALL
Wer schonmal ein angegriffenes System hatte, welches zum spammen missbraucht wurde, weiß wie nervig es ist alle Spuren zu entdecken. Die Mail Queue füllt sich, aber man findet nirgends die Quelle.
Seit PHP 5.3 gibt es eine neuen Option die den PhPmailer gesprächig macht.
Durch folgende option in der php.ini kann das loggen von Mails inklsuvie ausführendes Script aktiviert werden.
;PHP.INI /etc/php5/apache2/php.ini bearbeiten mail.add_x_header = On mail.log = /var/log/phpmail.log
Apache neustarten und ab jetzt werden alle Mailaktionen geloggt.
/etc/init.d/apache2 restart
Ein Beispiel Eintrag sieht dann so aus – gleich am Anfang steht nun das absendende Script.
mail() on [/var/www/schnipsellager.de/wp-includes/class-phpmailer.php:652]: To: XXX@xxx:COM — Headers: Date: Sun, 23 Aug 2015 17:36:26 +0000 From: WordPress <wordpress@schnipsellager.de> Message-ID: <fafa1faa791bcdfe17fc4933610231c1@schnipsellager.de> X-Priority: 3 X-Mailer: PHPMailer 5.2.10 (https://github.com/PHPMailer/PHPMailer/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit
Mit dieser kleinen Funktion wandelst du RGB Farben in Hex Farbcodes (#000000) um.
function rgb2hex($rgb) {
if ($rgb == "" || (!$rgb)) return "#FFFFFF";
$hex = split(",",$rgb);
$r = dechex($hex[0]);
$g = dechex($hex[1]);
$b = dechex($hex[2]);
return "#".$r.$g.$b;
}
Die WordPress Suche durchsucht von Haus aus, alle Posts und Seiten. Möchtest du aber eine bestimmte Kategorie von der Suche ausschließen, so ist dies problemlos mit einem kurzen Schnipsel möglich.
Die IDs der jeweiligen Kategorie bekommt ihr im Admin beim Editieren raus. Wählt eine Kategorie zum bearbeiten aus und schaut anschließend in die Browserleiste. Dort solltet ihr etwas sehen wie blablabl&TAG_id=3.
Habt ihr die IDs der Kategorien die ihr ausschließen wollt, öffnet die functions.php eures Themes und fügt folgenden Code ein (natürlich Kategorie IDs ersetzen):
function sl_filtercats($query) {
if ( $query->is_search) {
$query->set('cat','-3');
}
return $query;
}
add_filter('pre_get_posts','sl_filtercats');
Kürzlich hatte ich das Problem, dass die Inodes meines Dateisystems alle belegt waren. Auf der Suche nach dem Verursacher konnte mir folgender Befehl hilfreich und schnell mitteilen welches Verzeichnis die meisten Dateien enthält.
find / -xdev -printf '%h\n' | sort | uniq -c | sort -k 1 -n
Wer einen gut gesicherten PC hat der nicht viel unterwegs ist, kann auch gern den Luxus genießen sich nicht ständig in seinen Admin neu einloggen zu müssen. Mit folgendem Schnipsel könnt ihr die Cookie Laufzeit vom Login Cookie auf 1 Jahr hochsetzen.
Einfach folgenden Code in die functions.php eures Themes.
add_filter( 'auth_cookie_expiration', 'sl_login_duration' ); function sl_login_duration($expire) { return 31556926; // 1 Jahr in Sekunden }
Möchte man vermeiden, dass der WordPress Login eventuellen Angreifern Informationen zum Fortschritt Ihres Vorhaben mitteilt (Passwort ist falsch, etc) kann man die Login Filter Funktion einfach ersetzen.
In unserem Beispiel ist der einzige Fehler der ab jetzt mitgeteilt wird, lediglich „UPS“.
Dazu erweitert ihr einfach diefunctions.php eures Themes um folgenden Schnipsel:
function sl_login_error(){ return 'UPS!'; } add_filter( 'login_errors', 'sl_login_error' );
Vor allem bei Kundenprojekten ist es schön, wenn man den Login von WordPress anpasst.
Statt dem Standard WordPress Logo und der Verlinkung zu WordPress.org kann man schnell und einfach seine eigenen Inhalte nutzen. Die CI wirds danken.
Die Umsetzung ist denkbar einfach, nur den kurzen Schnipsel in die functions.php eures Themes und ihr genießt einen neuen Login.
// Css für .logo h1 a wird überschrieben.
// Breite auf 300px gesetzt, Hintergrundbild verändert und als Background-size Contain verwendet.
function sl_login_logo() {
echo '<style type="text/css">.login h1 a { background-image:url("https://schnipsellager.de/wp-content/uploads/2015/08/sl-login-logo.png") !important; width: 300px; background-size: contain; } </style>';
}
add_action('login_head', 'sl_login_logo');
// Login Url wird auf die Blogurl geändert. (Original: WordPress.org)
function change_wp_login_url() {
echo bloginfo('url');
}
// Der Titel des Hrefs wird angepasst.
//Nun steht euer Blogname Statt WordPress. org
function change_wp_login_title() {
echo get_option('blogname');
}
add_filter('login_headerurl', 'change_wp_login_url');
add_filter('login_headertitle', 'change_wp_login_title');
Standardmäßig sind die praktischen Shortcodes in den Sidebar Widgets nicht ausführbar. Sehr schade, denn die kleinen Code schnipsel ermöglichen doch allerhand tolle Spierelerein. So können allerhand Plugins durch die Codes Inhalte ausgeben und lassen sich so perfekt positionieren.
Die Abhilfe:
Die Lösung ist denkbar einfach, denn die Macher von WP haben alles dafür vorbereitet, dass die Shortcodes eben auch in den Widgets ausführbar sind.
add_filter('widget_text', 'do_shortcode');
Einfach diese Zeile in die functions.php eures Themes kopieren und der Shortcode kann ich ein normales „Text Widget“ eingefügt werden.