脚本中获取系统变量:
$0 这个程序的执行名字
$n 这个程序的第n个参数值,n=1…9
$* 这个程序的所有参数
$# 这个程序的参数个数
$$ 这个程序的PID
$! 执行上一个背景指令的PID
$? 上一个指令的返回值
脚本中获取系统变量:
$0 这个程序的执行名字
$n 这个程序的第n个参数值,n=1…9
$* 这个程序的所有参数
$# 这个程序的参数个数
$$ 这个程序的PID
$! 执行上一个背景指令的PID
$? 上一个指令的返回值
【整理人:张子萌 2010-4】
主要用于输入条件判断出错脚本退出和脚本运行完毕发出退出信号。
exit语句可以带一个可选参数,参数是一个整数退出状态码。
储存在 $? 中的返回给父进程的退出状态码。
0 表示脚本成功运行完毕。
1 表示程序不正常结束
exit如果不带参数,父shell使用 $? 变量的现存值。
修改/etc/hosts文件,添加主机地址。
修改/etc/sysconfig/network文件。
修改HOSTNAME=主机名”,如果没有此行可以手动添加。
【整理人:张子萌 2010-03】
ssh服务是不能用非交互的方式传递密码
下载地址:
http://sourceforge.net/projects/sshpass/
具体安装步骤如下:
# wget http://downloads.sourceforge.net/project/sshpass/sshpass/1.04/sshpass-1.04.tar.gz?use_mirror=cdnetworks-kr-1
# tar zxvf sshpass-1.04.tar.gz
# cd sshpass-1.04
# ./configure
# make && make install
sshpass为C编写的一个小程序使用比较简单,用法如下
sshpass -p 密码 ssh 用户名@目标IP 要执行的命令
此处密码为明文。sshpass也可以使用密码文件。具体可以通过‘sshpass -h’看看帮助。
对于密码安全问题,如使用密码文件可以将文件权限修改为600。如果直接写在shell中,可以使用加密脚本的
工具,缺点是每次修改都要编译脚本。
经常使用脚本,但是在脚本中写入密码明文很不安全,所以考虑加密问题。当前比较普遍、简单的方法为使用shc程序
把脚本使用RC4加密算法再编译一次。
shc的主页
http://www.datsi.fi.upm.es/%7Efrosal/
当前最新为http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.7.tgz
具体操作如下
# wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.7.tgz
# tar zxvf shc-3.8.7.tgz
# cd shc-3.8.7
# make test
# make strings
到此,目录下已经有了shc的程序,可以直接使用,如果希望使用方便也可以在安装一下。
# make install
安装完成,非常简单。使用也非常简单。
# ./shc -v -f myshell.sh
编译完成后会产生两个myshell.sh.x和myshell.sh.x.c。myshell.sh.x为二进制文件,
myshell.sh.x.c为C源码文件。