Unix
如何在Mac系统里分割flac音乐文件,并转换为wav
FLAC是Free Lossless Audio Codec的缩写,中文可解释为无损音频压缩编码。不同于其他有损压缩如MP3,它不会破坏任何原有的音频信息,所以现在它已被很多软件及硬件产品所支持。但Mac不支持。虽然可以用VLC来播放FLAC文件,但因为我们往往得到的是一个Flac文件包含一张CD的音频,使用起来很不方便,也没办法进行再编辑。
现在有一些Mac上带有GUI界面的音频解/编码可以把flac文件转换成wav或mp3文件,但是还是不能按照一首歌一个文件的模式分割flac文件。我趁着周末的时候,在网上查了查,发现Linux/Unix系统下的两个命令行软件可以解决这个问题。
虽然我使用的是Mac,但是借用Macports,就可以实现把Linux上的工具安装到Mac上。好了,下面就说说步骤。
安装flac,flac官方网站提供了Mac版本的flac工具,安装以后就可以使用flac命令转换flac音频文件了。
安装Macports,安装了它以后,编译,安装和更新 X11/Aqua 开源软件了。
配置PATH: 安装完macports以后需要设置系统PATH,使port可以在Terminal里执行。关于如何修改PATH,Google一下就行了,很简单。
然后使用port安装cuetools和shntool两个工具。命令如下:
sudo port install cuetools
sudo port install shntool
安装成功后,就可以使用这两个命令来分割flac文件了。不过有个前提,必须有相应的cue文件。假设我们有一个x.flac的话,就可以使用如下的组合命令分割它了:
cuebreakpoints x.cue | shnsplit -o flac x.flac
最后,使用flac命令,把分割好的文件转换为wav文件。flac -d *.flac
虽然有设置点儿麻烦,但是使用命令行来完成一些任务有的时候是很快的。特别是批量处理文件的时候。另外,使用命令是不是也比使用GUI工具更酷一点儿呢!
在Windows控制台里直接用Cygwin的命令。
虽然个人很喜欢基于Unix的系统,比如Linux和Mac OSX, 但工作的时候还是不得不用Windows,Windows在商业应用上的压倒优势还是毋庸置疑的。有的时候,我还是很舍不得Unix下那些非常好的命令行工具,和Unix比起来Windows的命令行简直就是鸡肋。要是能把Unix的命令行工具放到Windows里用该有多好啊!其实,早就有人想到了这个,cygwin就是其中最有名的,我个人认为也是最好的。安装了cygwin以后,几乎所有的Unix命令行工具都可以在Windows里使用了。
但是,还是有一点儿缺憾,当你想使用Unix命令的时候,必须单独启动Cygwin,这时候还想同时用用Windows的命令,就不得不再开一个Windows命令行窗口。还是有点儿麻烦。有没有解决办法呢?
有,还特简单。如果你学过Java,就应该知道在Windows安装Java以后需要设置环境变量吧。对,只要把cygwin.exe文件也加到环境变量里,就可以在Windows的命令行窗口里同时使用Windows和Unix的命令了。就这么简单。
步骤如下:
假设cygwin被安装在C:下面,复制cygwin的bin文件夹的全路径,比如C:\Cygwin\bin
打开”我的电脑”的属性。在”我的电脑”上点右键,选择属性。出现”系统属性”。再选择”详细设置”, 点击”环境变量”。
在环境变量里找到Path环境变量,双击打开它。
在一行的最后加一个”;”号,这是用来区别不同的命令路径的,然后把刚才复制的Cygwin路径(C:\Cygwin\bin)粘贴到”;”号后面,然后”确定”, 关闭”系统属性”窗口。
好了,搞定,赶紧试一试吧。
如何自动备份虚拟主机上的数据库
虚拟主机(hosting)的日常维护中非常重要的一项就是备份数据库了。一旦你的网站发布以后,你的系统就有可能面对各种各样的攻击和不确定性。所以经常的定期备份显得尤为重要。我之前的一个域名下的blog就是因为自己的管理不善,没有进行及时有效的备份而使得数据全部丢失了。所以自从购买的新的Domain和虚拟主机以后,首先就对数据库的备份做一些必要的设置,总结如下,仅供借鉴和参考。
备份的方法有很多,各有利弊:
1. 一般的虚拟主机提供商都提供在线手动备份数据库的功能。可以下载数据库文件到本地或者存储在虚拟主机上。现在比较流行的CPanel都默认提供这种功能。
2. 系统自身的备份功能。比如wordpress的DB backup插件。它可以自动的定时进行数据库备份。特点就是简单易用,具有图形界面。只需要安装相应的插件,简单设置一下就行了。缺点就是只限于特定应用,并不是通用的方法。但鉴于很多人都是为了写Blog而购买虚拟主机,并且Wordpress又是最流行的Blog系统。所以这也不失为一个简便方法。
3. 通过自己编写Shell脚本和Linux系统的Cron命令来进行备份。这个方法虽然稍微麻烦一些,但却是一个通用办法。与使用的应用程序无关。可制定性强。这个也是我今天要重点介绍的方法。
使用Shell脚本进行备份需要几个条件,首先需要你购买的虚拟主机支持SSH,即可以远程登录服务器并使用Shell,另外你的服务器还必须允许你使用Cron命令,这样就可能进行定期和自动备份。其次,这个方法只适用于Linux或Unix服务器。最后,就是需要懂得一点儿数据库和Shell的知识。
1. 需要是你的虚拟主机支持SSH,这个根据主机的不同而不同。具体方法可以和你自己的主机提供商联系。我这里以Bluehost为例,默认情况下,bluehost并不能使用SSH。你需要联系他们的客服。他们一般会要你提供你身份证明。确认开通以后,可以使用你喜欢的SSH工具连接你的服务器。Unix/Linux默认就有SSH,Windows必须安装相应程序(这就是我为什么讨厌Windows),我推荐Cygwin,它可以完全模拟Unix的环境。然后,输入下面的命令:
ssh (你的用户名)@(你的域名或IP)
比如: ssh bush@abc.com
然后,输入密码,就可登录你的主机了。
2. 编写数据库备份Shell。我这里以Mysql和Bash为例,编写了一个简单的示例Shell,只需要稍作修改就可以用到你自己的主机上了。其实这里只用到了一个mysql程序,即mysqldump,命令的讲解请点击这里。
首先,创建备份目录。
$mkdir ~/backup/database
然后,把下面的代码写进一个Shell文件,比如~/backup/database/myDB-backup.sh
#!/bin/bash
USERNAME=your home folder
BACKUP_DIR=/home/$USERNAME/backup/database
PASSWORD=your password
DATE_STRING=$(date +%Y)$(date +%m)$(date +%d)
FILE_NAME=$DATE_STRING.sql.bz2
mysqldump –add-drop-table –all-databases -u $USERNAME -p$PASSWORD | bzip2 -c > $BACKUP_DIR/$FILE_NAME
最后,要使刚才写的Shell可执行,运行下面的命令:
$chmod 755 ~/backup/database/myDB-backup.sh
3. 创建Cron。这个步骤与具体服务商的设置有关。如果使用Cpanel的话大体相同。具体请查看你自己虚拟主机的帮助。一般的在CPanel里,你就可以指定刚才创建的Shell(Command to run),然后指定Shell定期运行的时间,比如每天午夜12点。
其实,Cron与mysqldump一样是Unix/Linux里的一个工具。但因为是虚拟主机,没有使用cron的权限。只能通过CPanel之类的图形界面来定制你自己的Cron job。如果是独立主机的话,不存在这个问题。
好了,通过上面的是设置,你的数据库都会定期的备份到你指定的文件夹下,并保存为bz2压缩格式。文件名会是你的用户名加上备份日期:
像这样:Bush20080416.sql.bz2

