一个无聊的Shell

总的来说就是一个滚动的米字。

#!/bin/bash

SEQ="─ \ | / "
while [ "1" = "1" ] ; do
  for chr in $SEQ ; do
    echo -n -e "\r [ $chr ]"
    sleep 0.1
  done
done

安全删除 mysql-bin 二进制日志

今天网站突然连不上数据库,上了服务器后发现是 mysql 的二进制日志又把硬盘占满了。

像以前都是直接停 mysql 服务,然后删掉 mysql-bin 的日志。后来有同事说可以用 sql 命令来删除这些日志的。

1、显示日志文件:

mysql> show binary logs;

2、删除bin-log(删除mysql-bin.000020之前的所有二进制日志文件)。

mysql> purge binary logs to 'mysql-bin.000049';

用rsync+ssh进行备份

利用 rsync + ssh 可以很快速地对网站进行异地备份。步骤也很简单:

1、先用ssh-keygen生成一对keygen,可以免密码进行访问,可选。

2、确认本机与过程机都有安装 rsync,因为 ssh session 会自己执行 rsync –server 以便两端算签章。

3、使用如下命令进行备份

指令1 – 远端 备份回 本端:

rsync -avl --delete -e ssh server_hostname:/var/lib/mysql/ /backup/

指令2 – 本端 传送到 远端:

rsync -avl --delete -e ssh /var/lib/mysql server_hostname:/backup/

继续阅读 »

淘宝 Web 服务器 Tengine 正式开源

真是个令人振奋的消息。

Tengine是由淘宝核心系统部基于Nginx开发的Web服务器,它在Nginx的基础上,针对大访问量网站的需求,添加了很多功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,淘宝商城等得到了很好的验证。它的最终目标是打造一个高效、稳定、安全、易用的 Web 平台。Tengine现已开源。

—以下摘自其官方网站—

官方网站:http://tengine.taobao.org/

Tengine基于最新的Nginx稳定版(Nginx-1.0.10),在它的基础上开发了一些功能和做了一些bug修复,比如:

  • 组合多个CSS、JavaScript文件的访问请求变成一个请求;
  • 支持管道和syslog形式的日志和抽样;
  • 自动根据CPU数目设置亲缘性;
  • 监控系统的负载和资源占用从而对系统进行保护;
  • 显示对运维人员更友好的出错信息,便于定位出错机器;
  • 更强大的访问速度限制模块;
  • backtrace模块,程序崩溃的时候可以显示出错的调用栈;
  • 根据文件类型设置过期时间;

基本上,Tengine可以被看作一个更好的Nginx,或者是Nginx的超集。

编译 Gentoo 及 LFS

上个周未突然来兴致说要编译一下 LFS 或者 Gentoo,所以看了一遍 Gentoo 及 LFS 的编译过程,就开始上手了。之前在大学的时候就尝试编译过 LFS——当时一些朋友说编译 LFS 是一个可以让人忘记上课,忘记睡觉,忘记吃饭的事——编译了30几个小时也没能成功,所以很挫败。

因为 Gentoo 的编译过程简单许多,就先拿它下手。照着文档,差不多就编译了一个内核,一个 Grub,过程并不复杂,也顺利,内核编译了两遍,第一次没有把 SCSI 编译进去,造成启动的时候认不出我的 SATA 硬盘,编译了第二遍终于可以了,很兴奋——原来编译 Gentoo 也是这么简单的事,然后又用 emerge 安装了 VIM 等一些常用软件,基本系统也终于可以用了。

然后又开始编译 LFS,照着文档,也顺利地编译好了环境与基本系统,最后到内核的时候也犯了很多错误,开始的时候是直接拿了 Arch 的Config编译的,把很多东西都编译成模块了,又没有做 initfs,系统没能启动。又开始找作 initfs 的方法,都失败了。又把驱动啥的都编译到内核里去,还是启动不了,不知为何。今天索性用 arch 的内核来启动 LFS,系统是启动了,可一些初始化的工作没有完成,最后发现是 inittab 里的启动级别没设置好,最后系统终于能正常启动了,撒花~

继续折腾系统去,有时间写写编译过程与注意事项~

在 Windows 下使用 SSHFS

在 Windows 下要与 Unix-like 的系统文件共享,目前也就有以下几种方法:Samba、FTP、NFS、WinSCP、SSHFS。
Samba 很不错,很多书籍/教程都会介绍这个,但他只能在同个网段使用;
FTP 文件传输协议,很方便,但设计上是文件传输,而不是文件共享;
NFS 在 Unix-like 的系统上用的很多,但在 Windows 下比较好的免费程序几乎没有;
WinScp 其实就是 sftp,类似于 FTP;
SSHFS 通过 SSH 将远程主机的目录挂载到本地,很是方便,之前也有 介绍 过SSHFS。
所以我还是比较喜欢 SSHFS,恰好也在网上找到了在 Windows 下使用的 SSHFS:
下载地址:http://dokan-dev.net/en/download/,目前最新版本为 dokan-sshfs-0.6.0。

安装过程

1、下载并安装Dokan库文件:http://dokan-dev.net/wp-content/uploads/DokanInstall_0.6.0.exe
2、下载并解压DokanSSHFS:http://dokan-dev.net/wp-content/uploads/dokan-sshfs-0.6.0.zip
继续阅读 »

Shell 快捷键(二)

Shell 快捷键 中,对 Linux Shell 下 Emacs 分割的快捷键组合进行
了整理和总结,为了方便对比记忆,这里重新根据功能进行归类。

光标移动

命令 说明
Alt + b 后移一个单词
Alt + f 前移一个单词
Ctrl + b 后移一个字符
Ctrl + f 前移一个字符
Ctrl + a 把光标移到行首
Ctrl + e 把光标移到行尾
ctrl + ← 光标移动到前一个单词开头
ctrl + → 光标移动到后一个单词结尾
Ctrl + x Ctrl + x 在 EOL 和当前位置移动光标

输入编辑

命令 说明
Ctrl + h 删除前一字符
Ctrl + d 删除当前字符
Ctrl + k 删除当前字符到行末
Ctrl + u 删除行首到当前字符
Ctrl + w 删除单词到当前字符
Alt + d 从当前位置向后删除单词
Alt + ← 从当前位置向前删除单词
—————- —————————————————————
Esc + t 互换相邻两个单词
Alt + t 互换相邻两个单词
Ctrl + t 互换相邻两个字符
—————- —————————————————————
ctrl + ? 撤消前一次输入
Alt + r 撤消前一次动作
—————- —————————————————————
Alt + l 小写当前单词
Alt + u 大写当前单词
Alt + c 首字母大写当前单词
—————- —————————————————————
^oldstr^newstr 替换前一次命令中字符串

终端管理

命令 说明
Ctrl + s 锁住终端
Ctrl + q 解锁终端
Ctrl + l 清除终端
Ctrl + d 退出终端
————– —————————————————————–
Ctrl + c 中止命令
Ctrl + z 挂起命令
ctrl + o 重复执行命令

命令历史

命令 说明
Ctrl + r 向后查询历史,增量地
Ctrl + s 向前查询历史,增量地
Alt + p 向后查询历史,非增量地
Alt + n 向前查询历史,非增量地
————— —————————————————————-
Ctrl + p / ↑ 显示上一条命令
Ctrl + n / ↓ 显示下一条命令
Alt + < 移动到历史的首行
Alt + > 移动到历史的末行
————— —————————————————————-
Alt + . 插入最后一个参数
Alt + _ 插入最后一个参数
Esc + . 插入最后一个参数
Esc + _ 插入最后一个参数
————— —————————————————————-
Ctrl + y 粘贴刚才所删除的字符
Ctrl + Alt + y 插入上条命令的第一个参数

自动完成

命令 说明
Alt + / 尝试自动完成文件名
Alt + ? 显示当前自动完成列表
Alt + * 插入所有可能自动完成

其他

命令 说明
Ctrl + i 同 Tab
Ctrl + j 同 Enter
Ctrl + v CHAR 输入特殊字符
Ctrl + x @ 显示所有的可用的主机名自动完成
Ctrl + x Ctrl + e 使用 vim 写入 script 一次执行
2T 命令行补全
(string)2T 命令行补全
$2T 列出系统变量
=2T 列出当前目录
/2T 显示整个目录结构,包括隐藏文件
./2T 只显示子目录,包括隐藏目录
*2T 只显示子目录,不包括隐藏目录
@2T “/etc/hosts” 文件的条目
~2T “/etc/passwd” 文件中系统所有的当前用户

Shell 快捷键

在使用 Shell 进行 Linux 操作时,经常需要编辑大段的代码,如果仅仅使用键盘的
Delete 和 Backspace 键,那是一件非常折磨人的事情。我们以 Linux 默认的 Bash
Shell 为例,他可以设定为多种 Mode,使其操作习惯类似于一些熟悉的编辑器,比如
emacs 或 vi。

  • 列出所有 Mode

    set -o

  • 使用 vi 操作习惯來操作 Bash Shell

    set -o vi

  • 使用 emacs 的操作习惯来操作 Bash Shell,默认即为此 Mode

    set -o emacs

下面总结以下 Bash Shell 采用默认 emacs Mode 时可用的一些快捷键,能够极大提高
Shell 的操作效率。

继续阅读 »

让Gnome 3.2上的dock扩展工作

前几天把ArchLinux的Gnome升级到了3.2版本。
升完后,’gnome-shell-extension-dock’就无法工作了,用得顺顺得dock一下不见了很不习惯。前几天网上找也无果。

然后,终于在今天找到了方法:

# cd /usr/share/gnome-shell/extensions/dock@gnome-shell-extensions.gnome.org/
# vim extension.js

找到”this.actor.lower_bottom();”这一行,把它注释掉。保存后,在gnome-tweak-tool中把dock-extensions重新启用。Enjoy!
发现3.2的dock可以自动隐藏了,这个很是喜欢呐。

sshfs的配置

上个月新买了一个本本电脑,所以女人的旧电脑就算淘汰下来了。但我还得用我那07年的老爷机,在做开发上还是有些吃力,因此决定把原来共存于同一个系统的桌面环境和服务器环境分开,将服务器环境转移到淘汰下来的老爷机上,所以在上面装了个FreeBSD,以方便维护。但也因此出现一个问题,服务器的数据应该放在哪里,桌面机上还是服务器机器上。由于淘汰下来的机器可能会被我用来折腾,如挨个装发得版,或测试其它东西,所以我想把数据还是放在桌面机上;问题又来了,服务器如何能快速有效地访问这些数据,而不影响服务器的正常运作呢。

首先,想到的是用netbeans的远程站点功能。随后,又想到了利用 ssh 挂载远程文件系统的功能,把 Desktop 上的文件系统通过 sshfs 挂载到 Server 上。由于第一种方案需要依赖netbeans,所以我打算用第二种方案。

一、安装配置 SSHFS

安装 sshfs ,这个在 Arch 下用 pacman 安装即可,其它发行版应该都有相应的包管理器可以解决。在安装好 sshfs 之后,可以使用 # sshfs [USER]@[HOST]:[DIR] [MOUNTPOINT] [OPTIONS] 挂载远程的文件系统,使用 # fusermount -u [MOUNTPOINT] 进行卸载。当然,前提是远程系统上有 ssh daemon 运行。另外一个比较有用的参数是 -o allow_other,否则挂载的文件系统只有当前用户可用,其他用户无法访问。这样,就可以像操作本地文件一样来操作远程文件了。

继续阅读 »

第 1 页,共 39 页12345...102030...最旧 »