执行shell脚本的三种方式
#sh scriptssh
#/dir/scriptssh 或者 /scriptssh 脚本得有执行权限。
#source scriptssh
samba服务器的四种安全级别
security = user 设置安全级别,即客户端访问Samba服务器的验证方式。此部分中只能设置以下三种参数,参数设置:share(不推荐)、user、server(不推荐) 网页链接
参数说明:
security = share /user / server /domain /ads
以下三种安全级别用在Standalone Server Options部分,其中user级别也用于Domain Controller Options部分。
(1)share:访问Samba服务器共享资源时不需要输入用户名和密码,属于匿名访问。
(2)user:访问Samba服务器共享资源时需要输入用户名和密码,认证用户来源为Samba服务器本机。
(3)server:访问Samba服务器共享资源时需要输入用户名和密码,认证用户来源为另一台Samba服务器或Windows服务器。
以下两种安全级别用在Domain Members Options部分:
(4)domain:Samba服务器在一个基于Windows NT平台的Windows域中,访问共享资源需要输入用户名和密码,认证用户来源为Windows域。
(5)ads:Samba服务器在一个基于Windows 200X平台的Windows活动目录中,访问共享资源需要输入用户名和密码,认证用户来源为Windows活动目录。
#!/bin/bashtmptty=`tty`
tmptty=`basename $tmptty`
tmpname=`whoami`
ip="xxx" #目标主机地址
inp1="xxx^M" #主机的用户名,,注意必须有^M
inp2="xxx^M" #主机的密码,注意必须有^M
inp3="ls^M"
inp4="pwd^M"
inputfile=in
outputfile=outlog
rm -fr $inputfile
rm -fr $outputfile
mknod $inputfile p
touch $outputfile
#file description 7 for out and 8 for in
exec 7<>$outputfile
exec 8<>$inputfile
telnet $ip <&8 >&7 &
sleep 2; echo $inp1 >> $inputfile
sleep 2; echo $inp2 >> $inputfile
sleep 2; echo $inp3 >> $inputfile
sleep 2; echo $inp4 >> $inputfile
tail -f $outputfile &
while true
do
read str
if [[ $str = "quit" || $str = "exit" ]]
then echo $str >> $inputfile exit
else echo $str >> $inputfile
fi
done
ps -ef | grep telnet | grep -v grep | grep -v telnetd | grep $tmptty | grep $tmpname | awk '{print " kill -9", $2}' | sh
ps -ef | grep tail | grep -v grep | grep -v telnetd | grep $tmptty | grep $tmpname | awk '{print " kill -9", $2}' | sh
bash脚本里有三种方式访问PostgreSQL数据库
但前提是要设置密码文件。当然对于有系统对应账户的数据库角色可以绕过密码登录环节,如
1
$sudo-upostgrespsql
或
1
2
$sudosu-postgres
$psql
但是对于没有系统账户对应的数据库角色,如要使用脚本登录则必须使用PostgreSQL密码文件
heredoc方式
heredoc是一种很常用的方式,在bash环境下还可以使用变量替换,用法示例
1
2
3
psql-U${role}-h${host}-dmydb
CREATESCHEMA${role};
EOF
也可以在循环语句中,向数据库批量插入数据,类似
1
2
3
4
5
6
for
do
psql-U${role}-h${host}-dmydb
INSERTINTO${table}VALUES(${value1},${value2},);
EOF
done
但这种方式,每次插入一条语句都重新登录一次数据库,效率肯定不咋地。
UPDATE(05/05/2014):既然可以使用变量替换,可以将所有插入语句组合到一个变量中,然后就可以在一次登录中批量插入数据了。
还可以用以下方式来获取查询结果
result=`psql-Urole-hlocalhost-dmydb
SELECTFROMprocts;
EOF`
echo${result}
使用psql命令行选项-f执行sql脚本文件
1
psql-U${role}-h${host}-dmydb-f${scriptname}
使用psql命令行选项-c执行SQL语句或psql命令
psql的-c选项可以指定SQL语句或者psql命令,但二者不能混合,除非使用管道。如果命令参数中有多条SQL语句,则它们在一个事务里执行,除非使用BEGIN/COMMIT明确的指定事务。这与交互式使用psql终端不同,如果不明确指定事务,则每条SQL属于一个单独的事务并自动提交。只有最后一条SQL语句的结果被返回。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)