Zhang Jiuan’ Notes

shell常用的判断条件

#!/bin/sh
myPath=”/var/log/httpd/”
myFile=”/var /log/httpd/access.log”
#这里的-x 参数判断$myPath是否存在并且是否具有可执行权限
if [ ! -x "$myPath"]; then
mkdir “$myPath”
fi
#这里的-d 参数判断$myPath是否存在
if [ ! -d "$myPath"]; then
mkdir “$myPath”
fi
#这里的-f参数判断$myFile是否存在
if [ ! -f "$myFile" ]; then
touch “$myFile”
fi
#其他参数还有-n,-n是判断一个变量是否是否有值
if [ ! -n "$myVar" ]; then
echo “$myVar is empty”
exit 0
fi
#两个变量判断是否相等
if [ "$var1" = "$var2" ]; then
echo ‘$var1 eq $var2′
else
echo ‘$var1 not eq $var2′
fi
========================================
shell 判断语句
流程控制 “if” 表达式 如果条件为真则执行then后面的部分: if ….; then
….
elif ….; then
….
else
….
fi
大多数情况下,可以使用测试命令来对条件进行测试。比如可以比较字符串、判断文件是否存在及是否可读等等… [...]

linux 建立两台机器的信任关系

在写脚本中,肯定会遇到跨机器访问和scp的操作,每次都输入用户名和密码当然不方便,也不是写脚本的根本目的。如何在两台机器之间建立信任关系,那样每次访问都不用输入用户名和密码,这样脚本自动化起来就做到无人值守了。 那么下来就来讲下如何在两台机器之间建立信任关系。
机器1:im1.com
机器2:im2.com
假如把机器2作为主机器
1、登陆机器2
根目录为:/home/wanping
2、进入.ssh目录(如果没有,手动创建mkdir .ssh)执行命令:ssh-keygen –trsa
 [wanping@im2 .ssh]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/wanping/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/wanping/.ssh/id_rsa.
Your public key has been saved in /home/wanping/.ssh/id_rsa.pub.
The key fingerprint is:
00:b7:30:96:2d:09:25:cb:64:fe:88:5d:32:57:72:65 wanping@im2.com
生成两个文件id_rsa  id_rsa.pub
其中id_rsa是密钥文件,id_rsa.pub是公钥文件。
 
3、执行拷贝,把id_rsa.pub文件拷贝到机器1
scp id_rsa.pub im1.com:/home/wanping/.ssh/ scp id_rsa.pub 192.168.1.201:/home/user2/.ssh/10.62.244.126
为什么要把机器2的ip作为文件名呢,这是为了避免以后和更多的机器建立信任关系不发生混淆。
4、登陆机器1,进入.ssh目录下(如果没有,手动建立)
5、cat [...]

crontab用法说明

cron来源于希腊单词chronos(意为“时间”),是linux系统下一个自动执行指定任务的程序。例如,你想在每晚睡觉期间创建某些文件或文件夹的备份,就可以用cron来自动执行。服务的启动和停止cron服务是linux的内置服务,但它不会开机自动启动。可以用以下命令启动和停止服务:
/sbin/service crond start
/sbin/service crond stop
/sbin/service crond restart
/sbin/service crond reload
以上1-4行分别为启动、停止、重启服务和重新加载配置。
要把cron设为在开机的时候自动启动,在 /etc/rc.d/rc.local 脚本中加入 /sbin/service crond start 即可。
查看、编辑和删除cron把命令行保存在crontab(cron table)文件里,这个文件通常在 /etc 目录下。每个系统用户都可以有自己的crontab(在 /var/spool/cron/ 下)。
要查看当前用户的crontab,输入 crontab -l;
要编辑crontab,输入 crontab -e;
要删除crontab,输入 crontab -r。
如当前是root身份,要查看/编辑/删除/某用户的crontab,只需在相应的命令后加上 -u USERNAME(如 crontab -e -u USERNAME)即可。
crontab文件的默认编辑器是vi,可以输入 export VISUAL=\’editor\’ 更改默认编辑器。
cron服务每分钟不仅要读一次 /var/spool/cron 目录内的所有文件,还需要读一次 /etc/crontab 文件。配置这个文件也能让cron执行任务。使用crontab命令是对用户级任务的配置,而编辑 /etc/crontab 文件是对系统级任务的配置。
语法说明
以下是两个cron语句的例子(在 /etc/crontab 文件里)。前者用来晚间备份 /etc 目录,后者运行Analog程序处理服务器的统计信息。
12 3 * * * root tar czf /usr/local/backups/daily/etc.tar.gz /etc >> [...]

apache配置(如何禁止列出目录内容)

只需要将访问目录的Options 内部的Indexes去掉即可。
        <Directory /home/blog/piwigo-2.0.5>
                #Options Indexes FollowSymLinks MultiViews
                Options FollowSymLinks MultiViews
                AllowOverride all
                Order allow,deny
                allow from all
        </Directory>
If you enjoyed this post, make sure you subscribe to my RSS feed!

lighttpd配置大全

转载:http://hi.baidu.com/terry_sky/blog/item/69915baf583058fcfbed50be.html
lighttpd.conf配置大全
2008-11-07 14:42

############ Options you really have to take care of ####################
## modules to load
# at least mod_access and mod_accesslog should be loaded
# all other module should only be loaded if really neccesary
# - saves some time
# - saves memory
server.modules              = (
#                               “mod_rewrite”,
#                               “mod_redirect”,
#                               “mod_alias”,
                               “mod_access”,
                    “mod_cache”, # add
#                               “mod_cml”,
#                               “mod_trigger_b4_dl”,
#                               [...]

野兽渡河问题

题目:有六只野兽A, a; B, b; C, c,其中A野兽为a的妈妈; B为b的妈妈;C为c的妈妈。大野兽和小b会划船,但小a和小c不会划船。一条船只能乘坐两只野兽。另外如果在船的任何一边或船上,只要任何一只小野兽离开了妈妈,又有其它的大野兽,那么它就会被吃掉。问有什么方案可保证六只野兽安全渡河。
答案:
以*号代表船,||代表河
A:a; B:b; C:c * ||
=>
A:a; B; C ||* b, c
=>
A:a;B:b; C * || c
=>
A; B; C || * a, b, c
=>
A; B:b; C*||a,c
=>
B:b||*A:a; C:c
=>
A:a; B:b*||C:c
=>
A:a||*B:b; C:c
=>
A:a; C:c*||B:b
=>
a,c||*A; B:b;C
=>
a,b,c*||A;B;C
=>
a||*A;B:b;C:c
=>
a,b*||A;B;C:c
=>
||*A:a;B:b;C:c
If you enjoyed this post, make sure you subscribe to my RSS feed!

返回顶部