Tag: Perl
在 Shell Script 的第一行称为 shebang, shebang 由 “#!” 开头, 并在后面加上解译器的绝对路径, 即类似: #!/bin/sh #!/bin/bash #!/usr/bin/perl #!/usr/bin/python 如果 Shell Script 不同的平台执行, 指定的解译器可能位置有所不同, 如果想增加 Shell Script 在不同 Unix Like 环璄的可流动性, 可以使用 /usr/bin/env …
Perl 最大优势是拥有 CPAN 函式库,但如果没有安装 CPAN, 执行 CPAN 时出现以下错误: # perl -MCPAN -e shell Can’t locate CPAN.pm in @INC …… 这时只需安装好 CPAN 模组便可以,以下提供原码安装及 Yum 安装的方法: 原码安装 1. 到 CPAN 的官方网站找到 …
以前习惯用 Tab 来做缩排,在用 Sublime Text 没什么关系,Tab 跟 4 个空格的长度一致,但近年经常用 vim 直接在 CLI 写程式,当程式需要多层判断式或循环时,很多时在终端机会看得很辛苦,因为在 vim 显示 Tab 会比 4 个空格的距离还长。 所以还是用 4 个空格取代 Tab 较方便,以下是在 vim 及 Sublime Text 按下 …
Shell Script 对日常系统维护很实用,对于多用户系统,Shell Script 经常面对一个问题是重复执行,即一个 Shell Script 正在执行时,避免另一个使用者执行。另一个情况是,当 Shell Script 变得复杂及庞大时,放到 crontab 定时执行时 (例如每分钟执行一次),Shell Script 还未完成上次的执行,就重复自动执行一次。 要防止 Shell Script 重复执行,一般上会用 lock file 及 PID 的方法,不论是 lock file 还是 PID,除了用 …
一般讲法是每四年就有一年是闰年, 但这个讲法只符合大部份的闰年, 有些年份还是不会每四年一闰的。 在求学时期学写程式时, 就写过这样的程式, 很简单检查该年是否闰年, 而闰年的规则有 2 条: 1. 年份可以被 400 整除, 是闰年. 2. 年份不能被 100 整除, 但可以被 4 整除, 是闰年. 现在很多程式语言也不用测试上面的规则, 因为程式语言的开发者已经写好, 例如 PHP 的 date() 函式, …
ImageMagick 是一套开源的图片编辑工具, 可以建立、编辑、转换格式、建立缩图等。在 PHP 或 Perl 使用 ImageMagick 编辑图片十分好用, 而 PHP 的 Imagick 是透过 ImageMagick API 建立及编辑图片的模组, 以下会示范在 RHEL 及 CentOS 安装 ImageMagick, PHP 的 Imagick 模组以及 Perl 的 …
Postfix 跟其他 MTA 一样, 会将不能成功发送的邮件放到 Queue 里面, 在特定的时间内重新尝试发送, 超过指定的时间会自动删除。但如果发送大量邮件, 例如有用户发送大量垃圾电邮, 会在 Queue 内积压大量的邮件, 这时可以手动删除。 以下删除 Postfix Queue 内邮件的方法: 列出 Postfix Queue 内所有邮件: # mailq 删除 Postfix Queue 内所有邮件: # …
在写 Perl Script 时通常我会将错误讯息用红色显示, Warning 用黄色, 执行正确用录色, 看似没什么用, 但其实很方便, 不用细心看输出内容就可以知道有没有错误。在另一篇文章 Shell Script 输出颜色文字 介绍了在 Shell Script 输出颜色文字的方法, 但这个方法并不好记, 因为颜色码是数字, 通常用过就会忘记。 Perl 要印出颜色文字同样可以用上面提及的颜色码, 但另一个更方便的做法是用内建的 ANSIColor 模组, 用 ANSIColor 的好处是不用记颜色码, 直接用颜色的英文名称即可, …
Linux 下的管线 (pipe) 很实用,可以将多个指令一同执行,如果在 Perl Script 想读取 pipe 输入,可以用 符号,这样就可以将 Perl Script 写到像 Linux 下的指令那样运作,写法也十分简单,就这样: testing.pl 以上程式码会读入 pipe 输入,然后逐行印出,在指令模式这样做: cat /etc/fstab | testing.pl 上面的指令将 cat /etc/fstab 的输出导入到 testing.pl。
这个 Perl Script 使用 mysqldump 备份 MySQL, 可以放到 crontab 自动执行。 程式需要按需要修改, 以下是需要修改的选项: $db_username: mysql 使用者名称 $db_password: mysql 密码 $db_host: mysql server 位置 $mysqldump: mysqldump 位置 $backup_dir: 储存备份档的目录 $rotate: 保留备份数量 …