当前位置:  建站>其它
本页文章导读:
    ▪find和grep命令      在linux中进行文件查找,或者关键字查询是非常常见的,其中最为常见的工具就非find和grep莫属了,下面对于这两个工具的一般用法做简单介绍: find find自身具有递归性,也就是它能自动查找.........
    ▪linux编程实例1       1.查找当前目录中所有大于500M的文件,把这些文件名写到一个文本文件中,并统计其个数。 find ./ -size +500M -type f | tee file_list | wc -l 2.在目录/tmp下找到100个以abc开头的文件,然后把这些.........
    ▪Dynamics CRM 2011编程系列(48): WCF Service 和 Web Service 程序的部署          很多时候我们需要自己发布自己的API给外部程序进行调用,这时候就需要用到WCF或Web Service了。我们来看个简单的例子吧:Web Serviceusing System; using System.Collections.Generic; using System..........

[1]find和grep命令
    来源: 互联网  发布时间: 2013-11-02

在linux中进行文件查找,或者关键字查询是非常常见的,其中最为常见的工具就非find和grep莫属了,下面对于这两个工具的一般用法做简单介绍:

find

find自身具有递归性,也就是它能自动查找所在目录,同时递归查询所在目录的子目录,具体用法如下:

#find <dir> -name <file name>

ex:#find ./ -name a.out

grep自身不具有递归性,需要特别指示(用-r参数),否则只会在当前目录搜索,具体用法如下:

#grep -r <character> <dir>

ex:#grep -r aaaaaa ./

作者:eddy_liu 发表于2013-1-2 17:28:17 原文链接
阅读:94 评论:0 查看评论

    
[2]linux编程实例1
    来源: 互联网  发布时间: 2013-11-02
 1.查找当前目录中所有大于500M的文件,把这些文件名写到一个文本文件中,并统计其个数。
find ./ -size +500M -type f | tee file_list | wc -l
2.在目录/tmp下找到100个以abc开头的文件,然后把这些文件的第一行保存到文件new中。
for filename in `find /tmp -type f -name "abc*"|head -n 100`
do
sed -n '1p' $filename>>new
done
3.把文件b中有的,但是文件a中没有的所有行,保存为文件c,并统计c的行数。
grep -xvf a b | tee c | wc -l
4.判断一文件是不是块或字符设备文件,如果是将其拷贝到 /dev 目录下
read -p "input a file:" filename
if [ -b $filename -o -c $filename ]
then
    cp $filename /dev/
fi
5.每隔10分钟监控一次,监控/usr下如果大于5G,发邮件给管理员
#!/bin/bash
while true
do
    sleep 600
    n=$(du -s /usr | cut -f1)
    if [ $n -gt 5242880 ]
    then
        mail -s "greater" filwsyl@gmail.com < ~/filename #将文件filename的内容发送出去。
    fi
done
6.从a.log文件中提取包含"WARNING"或"FATAL",同时不包含"IGNOR"的行,然后提取以":"分割的第5个字段
grep -E 'WARNING|FATAL' a.log | grep -v IGNOR | awk -F ":" '{print $5}'
7.编写一个脚本,进行简单的减法运算,要求提示输入变量
#!/bin/bash
read -p "input a number:" num1
read -p "input another number:" num2
let "num3=num1-num2"
echo $num3
8.把某个目录下的文件扩展名改为bat,再以时间为文件名压缩打包存放到某个目录。
#!/bin/bash
for file in $(ls $1)
do
    new_file=${file%.*}.bat
    mv ./$1/$file ./$1/$new_file
    tmp=$(date +%y)
    tar cvf ./$tmp.tar ./$1
done
9.从网上下载一个文件,保存到指定目录
#!/bin/bash
url=http://rs1.bn.163.com/ent/2009/05/20_canquedege.wma
dir=~/下载
wget -P $dir $url
10.判断一个数是不是完数。打印出1-1000之间的完数。 完数就是约数的和等于自身2倍的数。(6,28,496)
#!/bin/bash
sub()
{
    i=1;
    sum=0;
    while [ $i -le $num ]
    do
        let "m=num%i"
        if [ $m -eq 0 ]
        then
            let "sum=sum+i"
        fi
        let "i=i+1"
    done
    let "a=2*num"
    if [ $a -eq $sum ]
    then
        echo $num
    fi
}
num=1
while [ $num -le 1000 ]
do
    sub
    let "num = num+1"
done
11.以行为单位,求文件A和文件B交集,并集,差集。
并:
sort -m <(sort A | uniq) <(sort B | uniq) | uniq
交:
sort -m <(sort A | uniq) <(sort B | uniq) | uniq -d
差:
sort -m <(sort A | uniq) <(sort B | uniq) <(sort B | uniq) | uniq -u
12.在某个文件夹下查找含有指定字符串的文件
#!/bin/bash
for file in $(ls $2)
do
    bname=$(grep -l $1 $2/$file)
    basename $bname
done
调用方法:./tst 000 bash#在文件夹bash中查找含有“000”的文件。
13.添加一个新组为class1,然后添加属于这个组的30个用户,用户名的形式为stdxx,其中xx从01到30。
#!/bin/bash
groupadd class1
for i in {9901..9930}
do
    xx=$(echo $i | sed 's/99//');
    useradd -g class1 std$xx -p ""
done
14.实现自动删除50个账号的功能。账号名为stud1至stud50
#!/bin/bash
i=0
while [ i -le 50 ]
do
   let i++
       userdel -r stud$i
done
15.某系统管理员需每天做一定的重复工作,请按照下列要求,编制一个解决方案:
(1)在下午4 :50删除/abc目录下的全部子目录和全部文件;
(2)从早8:00~下午6:00每小时读取/xyz目录下x1文件中每行第一个域的全部数据加入到/backup目录下的bak01.txt文件内;
(3)每逢星期一下午5:50将/data目录下的所有目录和文件归档并压缩为文件:backup.tar.gz;
(4)在下午5:55将IDE接口的CD-ROM卸载(假设:CD-ROM的设备名为hdc);
(5)在早晨8:00前开机后启动。
vim /etc/crontab 在里面增加下面内容:
1)50 16 * * * root rm -rf /abc/* 2>&1 &
2)00 8-18 * * * root cat /xyz/x1|awk '{print $1}' >> /backup/bak01.txt 2>&1 &
3)50 17 * * 1 root cd /data;tar -zcvf backup.tar.gz * 2>&1 &
4)55 17 * * * root umount /hdc 2>&1 &
5)在早晨8:00前开机后启动 --> 这个我不是很明白它的意思,不知道是不是8点前开机就启动上面的设定,8点后才开机就不用启动的意思。姑且用下面这个命令吧。
chkconfig --level 2345 crond on
16.设计一个shell程序,在每月第一天备份并压缩/etc目录的所有内容,存放在/root/bak目录里,且文件名
为如下形式yymmdd_etc,yy为年,mm为月,dd为日。Shell程序fileback存放在/usr/bin目录下。
vim /usr/bin/fileback.sh
#!/bin/bash
#fileback.sh
#file executable: chmod 755 fileback.sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
filename=`date +%y%m%d`_etc.tar.gz
cd /etc/
tar -zcvf $filename *
mv $filename /root/bak/
------------------------------------------------------
vim /etc/crontab 加入
* * 1 * * root ./fileback.sh &
17.有一普通用户想在每周日凌晨零点零分定期备份/user/backup到/tmp目录下,该用户应如何做?
首先说一下非root用户编写crontab文件的方法。
一:
[sword@localhost ~]$ vim cronfile
[sword@localhost ~]$ crontab cronfile
二:
[sword@localhost ~]$ crontab -e
no crontab for sword - using an empty one
crontab: installing new crontab
查看结果:
[root@localhost cron]# crontab -u sword -l
显示内容是:/var/spool/cron/sword 文件的内容。
vim ~/shit.sh
#!/bin/bash
cp /user/backup/* /tmp/
--------------------------------------------
crontab -e
0 0 * * 0 ~/shit.sh &
18.设计一个Shell程序,在/userdata目录下建立50个目录,即user1~user50,并设置每个目录的权限,其
中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。
#!/bin/bash
for ((i=1;i<=50;i++))
do
       mkdir -p /usrdata/user$i
       cd /usrdata
       chmod 754 user$i
done
19.一个文件内容全部是类似
【202.205.151.21】--【23:59:22】-“HTTP GET”-“Mozila”
...
写一个SHELL命令找出最多的10个IP
awk -F "--" '{print $1}' shit | sort | uniq -c | sort -r | sed -n '1,10p'
20./tmp路径下有800个文件,文件名的格式是:filename_YYYYMMDD_序列号(从001到999).dat, 例如:filename_20040108_089.dat。现在想把这些文件改名,新文件名的格式是:filename_TODAY(当前日期)_序列号(从500开始,到达999之后从001开始).dat,例如: 把filename_20040108_089.dat改为filename_20041222_589.dat,注意新文件名的序列号的顺序需要和原来的一致,即要做排序处理。
#!/usr/bin/bash
DEST_FILE_PART2="_`date '+%Y%m%d'`_"
EXT_NAME=".dat"
SRC_FILE_LIST=`find /tmp -name "*_*_*$EXT_NAME" -print`
for each in $SRC_FILE_LIST; do
    DEST_FILE_PART1=`echo $each | awk -F"_" '{print $1}'`
    OLD_NUM=`echo $each | awk -F"_" '{print $3}' | awk -F"." '{print $1}'`
    DEST_FILE_PART3=`expr $OLD_NUM + 500`
    [ $DEST_FILE_PART3 -gt 999 ] && DEST_FILE_PART3=`expr $OLD_NUM - 499`
        && DEST_FILE_PART3=`printf %03d $DEST_FILE_PART3`
    DEST_FILE=$DEST_FILE_PART1$DEST_FILE_PART2$DEST_FILE_PART3$EXT_NAME
    echo "mv $each to $DEST_FILE"
    mv $each $DEST_FILE
done
我的解法:
#!/bin/bash
new_file=$(date +20%y%m%d);
for file in $(ls ~/bash)
do
    i=$(echo "$file" | sed 's/.*_[0-9]*_\([0-9]*\).dat/\1/')    #取出序列号
    i=$(echo $i | sed 's/^0*\([0-9]*\)/\1/')                #去掉序列号前面可能的 ‘0’,
    let "ii=i+500"
    if [ $ii -gt 999 ]
    then
&nb
    
[3]Dynamics CRM 2011编程系列(48): WCF Service 和 Web Service 程序的部署
    来源: 互联网  发布时间: 2013-11-02

    很多时候我们需要自己发布自己的API给外部程序进行调用,这时候就需要用到WCF或Web Service了。我们来看个简单的例子吧:

Web Service
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

/// <summary>
/// Summary description for WebService
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
// [System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService {

    public WebService () {

        //Uncomment the following line if using designed components 
        //InitializeComponent(); 
    }

    [WebMethod]
    public string HelloWorld() {
        return "Hello World";
    }
    
}

 

WCF Service
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Activation;
using System.Text;

// NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service" in code, svc and config file together.
[AspNetCompatibilityRequirements(RequirementsMode=AspNetCompatibilityRequirementsMode.Allowed)]
public class Service : IService
{
	public void DoWork()
	{
	}
}


 

部署步骤

 

图1

 

图2

 

图3

 

图4

 

图5

 

图6

 

图7

小结

1.WCF Service 必须放在XrmServices文件夹下,放在其他的位置会出错。具体原因不明

2.WCF Service 和 Web Service 并不一定需要部署在Dynamics CRM 系统的安装目录下,毕竟它们是用来解决异构系统的产品。

 

 

作者:ghostbear 发表于2013-1-4 10:16:49 原文链接
阅读:0 评论:0 查看评论

    
最新技术文章:
▪linux内核中的信号机制--信号处理    ▪windows忘记密码    ▪常见的10种“瓶颈”
▪详解Linux内存使用信息    ▪「学习笔记——Linux」Linux软件管理(RPM,Dpkg,APT)...    ▪Shell(Bash)编程实例之获取某个文件夹下的所有...
▪Dynamics CRM 2011编程系列(49):FetchExpression(一)...    ▪Linux个人磁盘分区方案(20G)    ▪细谈MySQL配置的优化
▪交换机与路由器的区别    ▪什么叫网关的精解    ▪Linux下date命令,格式化输出,时间设置
▪「学习笔记——Linux」Linux账号管理与ACL权限...    ▪bash参考手册之四(shell内建命令)    ▪集线器、交换机、路由器、中继器及网关、网...
▪【学习笔记——Linux】Linux下正确关机方法    ▪【学习笔记——Linux】Linux磁盘和文件系统管...    ▪实验一 SCVMM安装
▪Tomcat7和mysql连接池的配置方法和测试(dbcp方...    ▪Tomcat7和mysql连接池的配置方法和测试(dbcp方...    ▪linux内核中的信号机制--信号发送
▪轻松搭建自己的Linux发行版本    ▪bash参考手册之三(基本的Shell特性)续九    ▪fedora18无线用pppoe拨号上网
▪高并发下的 Nginx 优化方案    ▪使用linux命令搜集    ▪JVM 配置参数学习与研究
▪修改CentOS的yum源为163    ▪CentOS下源码安装php+apache+mysql    ▪Redis监控方案
▪linux下压缩工具的区分-gzip,bzip2,tar    ▪基于apache搭建svn    ▪Windows下查看占用端口的程序
▪Nginx+CI 出现404错误    ▪tcpdump抓包工具的高级应用    ▪Windows socket之IOCP实例----IOCP开发驾照理论考试...
▪Web访问异常简单报警    ▪【linux环境配置】linux改成root用户的命令    ▪IIS7.0未能加载文件或程序集
▪linux下获得root权限    ▪IIS6 配置ASP.NET网站伪静态    ▪服务器更换硬盘后Oracle不能连接问题的解决
▪在源Exchange Mailbox 服务器宕机的情况下将用户...    ▪Ubuntu下WordPress更新固定链接方法总结    ▪如何在suse linux 建立共享文件夹
▪linux ntp 时间服务器及客户端安装配置    ▪Thunderbird设置邮件回复时自动签名和邮件引用...    ▪Resin Windows一键部署应用脚本BAT
▪认识Linux系统服务(鸟哥18章笔记)    ▪Vmware中的网络工作模式    ▪Cygwin + NS2 + Win XP 安装方法 网上 唯一 有效版...
▪linux内核中的文件描述符(一)--基础知识简介    ▪64位系统DOSBox 下面nasm编译程序出现"Unable to ope...    ▪Linux 自动上传备份文件
▪Linux下MySQL配置文件my.ini位置    ▪Memcached的管理    ▪linux内核中的copy_to_user和copy_from_user(二)—图解...
▪jdk1.7和tomcat7安装过程    ▪虚拟项目学习git/github原理与基本操作9    ▪以wifi为媒介,linux系统与android设备交互
▪find和grep命令    ▪linux编程实例1    ▪Dynamics CRM 2011编程系列(48): WCF Service 和 Web...
▪vmware 下的linux操作系统 共享windows网络    ▪一次在安装完VMware tools后,系统无法进入图形...    ▪Ubuntu 12.04重装手记
▪Linux常见的登录文件档案名称    ▪虚拟项目学习git/github原理与基本操作2    ▪安装MyEclipse6.5提示输入proxy ip和端口号问题解...
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

▪修改CentOS的yum源为163    ▪CentOS下源码安装php+apache+mysql    ▪Redis监控方案 iis7站长之家