Script

Filter
2005-09-12

Schemaläggning med Cron

Linux
Låt datorn utföra saker när du vill
I vissa system finns det 4 kataloger i /etc: cron.hourly, cron.daily, cron.weekly, cron.monthly. Lägg dina script i dessa för att köra dem. Nackdelen är att man inte har nån kontroll på exakt när scriptet körs.
Istället kan man då redigera /etc/crontab:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

0  *  *  *  *  root rm -f /var/spool/cron/lastrun/cron.daily

Raden har följande format:
minut timme dag-i-månaden månad veckodag användare script
Exempel:

# Kör ls som root 5 minuter efter varje hel timme:
5  *  *  *  *  root  ls

# Varje lördag morgon kl 5 (0 = söndag):
0  5  *  *  6  root  ls

# Kl 15:40 den 18:de juli
40  15  18  7  *  root  ls

# Run command at 7:00am each weekday [mon-fri] 
00 07 * * 1-5 mail_pager.script 'Wake Up'

# Run command on 1st of each month, at 5:30pm
30 17 1 * * pay_rent.script 

# Run command at 8:00am,10:00am and 2:00pm every day
00 8,10,14 * * * do_something.script 

# Run command every 5 minutes during market hours
*/5 6-13 * * mon-fri get_stock_quote.script 

# Run command every 3-hours while awake
0 7-23/3 * * * drink_water.script
2005-08-30

Character coding

Mysql
Hantera utf8 i mysql 4.1
<?php header("Content-type: text/html; charset=utf-8"); ?>
<html>
<head>
<meta http-equiv="Content-type" value="text/html; charset=utf-8">
...

Om inte detta funkar (t ex från formulär) kan man använda sig av:
mb_convert_encoding (från mbstring),
iconv, 
recode, eller
utf8_encode
2005-08-29

Infällda citat

Javascript
Kopiera ett citat till en annan plats på sidan
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Pullquote</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css"><!--
.pullquote {
    float: right;
    margin: 0em 0em 2em 2em;
    width: 20 em;
}
.pullquote p {
    padding: 1em;
}
--></style>
<script language="JavaScript1.2" type="text/javascript">
pullQuote = function() {
    var tagsToCheck = ["p", "div", "cite", "q", "em", "i", "strong", "b", "span", "a"];
    var placement = [];
    var pullquotes = [];
    for (var i=0; i<tagsToCheck.length; i++) {
        var tagTemp = document.getElementsByTagName(tagsToCheck[i]);
        for (var j=0; j<tagTemp.length; j++) {
            if (tagTemp[j].id && tagTemp[j].id.match(/push$/)) placement.push(tagTemp[j]);
            if (tagTemp[j].id && tagTemp[j].id.match(/pull$/)) pullquotes.push(tagTemp[j]);
        }
    }
    for (var i=0; i<placement.length; i++) {
        for (var j=0; j<pullquotes.length; j++) {
            if (placement[i].id.substr(0,4) == pullquotes[j].id.substr(0,4) && document.createElement) {
                var qWrap = document.createElement("blockquote");
                var qPara = document.createElement("p");
                var orig = pullquotes[j].cloneNode(true);
                while(orig.firstChild) qPara.appendChild(orig.firstChild);
                qWrap.appendChild(qPara);
                qWrap.classname = "pullquote";
                placement[i].parentNode.insertBefore(qWrap, placement[i]);
            }
        }
    }
}
window.onload = pullQuote;
// alternativ:
// window.onload = function() {
//    ... functions ...
// }
</script>
</head>
<body><p>Lite text i ett stycke</p>
<p id="p001push">Före det här stycket ska id="p001pull" infogas</p>
<p>Det här stycket innehåller ett citat <cite id="p001pull">den här texten är ett citat</cite>, som ska användas som infälld text</p>
</body>
</html> 
2005-08-22

Byt namn på alla filer

Perl
Script som kan ändra filändelse på alla filer i en mapp, på en gång, rekursivt (Alla filer i mappar i mappar påverkas)
#!/usr/bin/perl
# This script renames the extensions
# of all files in a folder recursively
# Rolf Fredriksson - Rosiro 2005-08-22

$n = scalar @ARGV;
unless ($n == 3 && -d @ARGV[0]) {
    die ("Usage: $0 folder oldExt|- newExt|-\n");
}
use File::Find;
sub process_file {
    if (-f $_) {
        if (@ARGV[1] ne "-") {
            $nn = $_;
            s/(.+)\.@ARGV[1]$/$1/;
            rename($nn, $_);
        }
        if (@ARGV[2] ne "-") {
            rename($_ , $_ . "." . @ARGV[2]);
        }
    }
}
find(\&process_file, @ARGV[0]); 
2005-08-22

Kommentarer i perl

Perl
Kommentarer i perl
=for nobody

Bortkommenterade
rader i perl

=cut
🙂