Cron

Cron在Linux系统中用于计划任务。

举个例子

0 */2 * * * date >> /var/log/date.log

这将在每2小时往date.log里记录下date命令的结果。

格式说明

前面5位数,分别代表的是 分钟 小时 日 月 星期几, 然后后面就是条件满足时候运行的命令。
这前面5位数,可取值的范围是:
逗号 (‘,’) 分开的值,例如:“1,3,4,7,8”
连词符 (‘-‘) 制定值的范围,例如:“1-6”,意思等同于“1,2,3,4,5,6”
星号 (‘‘) 代表任何可能的值。例如,在“小时域” 里的星号等于是“每一个小时”
斜杠 (‘/’) 代表整除,例如”
/2″表示所有的偶数

参考

http://zh.wikipedia.org/wiki/Cron

Less

Zete says: “Less is more”


Color: export LESS=’–raw-control-chars –quiet –LINE-NUMBERS –HILITE-UNREAD –ignore-case –long-prompt’
F: go to end of file and waiting new data
ctrl + f / space: page down
ctrl + b: page up

Solve Discuz Forum Error 114: Table ‘forum_thread’ is marked as crashed and autorepair failed

Just now, I reboot the server, and after that the Discuz forum encounter an error 114 :
Table ‘forum_thread’ is marked as crashed and last (automatic) repair failed

It’s easy to solve this situation, just:

1.open the phpmyadmin
2.select the database that contain the forum
3.select the table forum_thread
4.in the sql tab, run “REPAIR TABLE ‘forum_thread'”
5.done!



Reference
http://www.acogle.cn/show_news.asp?id=473

ubuntu用户以及组管理

ubuntu中的用户和组管理

======重要文件======
/etc/passwd
用户账户文件,每行一个用户,每行有7个字段,分别是:
登录名:有无口令:用户ID:组ID:账户备注信息:用户Home目录:登录时用户shell的名称

/etc/shadow
用户口令文件,每行一个用户,字段分别为:
登录名:加密的口令:上次更改口令距离1970.1.1的天数:口令更改后不可更改的天数:口令更改后必须再更改的天数(有效期):口令失效前警告用户的天数:口令失效后距帐号被查封的天数:帐号被封时距1970.1.1的天数:保留未用

/etc/group
组账户文件,每行一个组,字段为:
组名:组加密口令:GID:组成员列表

/etc/gshadow
组口令文件,每行一个组,字段为:
用户组:用户组加密口令:组管理员帐号:组成员列表

======常用命令======
useradd
添加用户

usermod
修改用户属性

userdel
删除用户

groupadd
添加组

groupmod
修改组账号

groupdel
删除组账号

passwd
口令维护,超级用户可以设置其他人的口令,其他用户只能设置自己的

gpasswd
组成员维护,添加、删除、管理组管理员

id
查看用户状态,包括id,所属组等。也可以查别人的。

参考:
http://my.oschina.net/zhangqingcai/blog/32094

mysql在linux系统下的备份脚本

转自:http://os.chinaunix.net/a2006/0823/970/000000970876.shtml
空了修改修改就能备份整个站点了

脚本如下:

  1.     #!/bin/sh
  2.     # mysql_backup.sh: backup mysql databases and keep newest 5 days backup.
  3.     #
  4.     # Last updated: 20 March 2006
  5.     # ———————————————————————-
  6.     # This is a free shell script under GNU GPL version 2.0 or above
  7.     # Copyright (C) 2006 Sam Tang
  8.     # Feedback/comment/suggestions : http://www.real-blog.com/
  9.     # ———————————————————————-
  10.     # your mysql login information
  11.     # db_user is mysql username
  12.     # db_passwd is mysql password
  13.     # db_host is mysql host
  14.     # —————————–
  15.     db_user=“root”
  16.     db_passwd=“”
  17.     db_host=“localhost”
  18.     # the directory for story your backup file.
  19.     backup_dir=“”
  20.     # date format for backup file (dd-mm-yyyy)
  21.     time=“$(date +”%d-%m-%Y“)”
  22.     # mysql, mysqldump and some other bin’s path
  23.     MYSQL=“$(which mysql)”
  24.     MYSQLDUMP=“$(which mysqldump)”
  25.     MKDIR=“$(which mkdir)”
  26.     RM=“$(which rm)”
  27.     MV=“$(which mv)”
  28.     GZIP=“$(which gzip)”
  29.     # check the directory for store backup is writeable
  30.     test ! w $backup_dir >> echo “Error: $backup_dir is un-writeable.” >> exit 0
  31.     # the directory for story the newest backup
  32.     test ! “$backup_dir/backup.0/” >> $MKDIR “$backup_dir/backup.0/”
  33.     # get all databases
  34.     all_db=“$($MYSQL -u $db_user -h $db_host -p$db_passwd -Bse ‘show databases’)”
  35.     for db in $all_db
  36.     do
  37.      $MYSQLDUMP u $db_user h $db_host p$db_passwd $db | $GZIP 9 > “$backup_dir/backup.0/$time.$db.gz”
  38.     done
  39.     # delete the oldest backup
  40.     test “$backup_dir/backup.5/” >> $RM rf “$backup_dir/backup.5”
  41.     # rotate backup directory
  42.     for int in 4 3 2 1 0
  43.     do
  44.      if(test “$backup_dir”/backup.“$int”)
  45.      then
  46.      next_int=`expr $int + 1`
  47.      $MV “$backup_dir”/backup.“$int” “$backup_dir”/backup.“$next_int”
  48.      fi
  49.     done

linux/mac下的自定义命令alias,并保存别名使其永久生效(重启不会失效)

现在做开发每次提交代码的命令都是一长串参数,不想去记,于是可以使用alias命令来解决这个问题:
alias aCommandAlias='aCommand 一堆参数什么的'
比如
alias gpush='git push origin HEAD:refs/for/master'

这样在终端中,只需要输入gpush就ok了。

但是只是这样的话,会在重启之后失效,解决办法是编辑~/.bashrc文件,每行加入一个alias命令。比如:
alias cdhome='cd ~'
alias cdroot='cd /'
alias gpull='git pull'
alias gci='git commit -a'
alias gpush='git push origin HEAD:refs/for/master'
alias gst='git status'

保存文件后,运行:
source ~/.bashrc(不然不生效)
就可以了。
如果还不行的话,说明没有~/.bash_profile文件,或者文件中没有执行.bashrc文件。
(.bash_profile文件是用户登陆终端的时候会自动执行的文件,一般此文件中会调用.bashrc)
如果是这样,需要打开(如果没有的话先创建)文件:
~/.bash_profile
在里面加入一行:
source ~/.bashrc
就ok了。
我在mac系统下测试ok的。

vim 命令

vim命令整理备忘

先整理常用命令

切换状态:

i   进入插入模式
ESC   退出插入模式

常用:

h,j,k,l    移动光标
:w   保存
:q  退出
:wq和:x 保存修改并退出
:q!  强退
x 删除当前字符
dd 删除当前行
p 粘贴到当前行下面
yy 复制当前行,可以在前面加数字表示复制多少行

/patten 查找字符串patten
n 继续向下查找
N 反向查找