版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、人人都能學(xué)會(huì)的企業(yè)SHELL編程人人都能學(xué)會(huì)的SHELL編程目 錄1.Shell入門(mén)簡(jiǎn)介12.Shell編程之變量詳解43.If條件語(yǔ)句學(xué)習(xí)74.使用if條件語(yǔ)句編寫(xiě)MySQL備份腳本105.IF條件綜合Shell實(shí)戰(zhàn)腳本編寫(xiě)116.循環(huán)語(yǔ)句for197.循環(huán)語(yǔ)句while218.Until循環(huán)語(yǔ)句229.Case選擇語(yǔ)句2310.select選擇語(yǔ)句2411.Shell編程函數(shù)講解2512.Shell數(shù)組編程2613.Shell編程之a(chǎn)wk、sed命令案例分析2914.全備和增量備份Linux系統(tǒng)腳本編寫(xiě)3015.Shell編程之IP匹配及磁盤(pán)郵件告警331. Shell入門(mén)簡(jiǎn)介說(shuō)到Shel
2、l編程,我想很多從事Linux運(yùn)維工作的朋友都不陌生,都對(duì)Shell有基本的了解,可能大家剛開(kāi)始接觸Shell的時(shí)候,有各種想法?能不能不學(xué)?高大上?到底是浮云?還是神馬?很難???我想告訴大家的是,大家有這些想法一點(diǎn)都不覺(jué)得驚訝,為什么?這些都很正常,對(duì)于任何一件事情在未開(kāi)始之前,肯定會(huì)有總總假設(shè),那我今天想說(shuō)的是,學(xué)完人人都會(huì)Shell編程后,我們會(huì)覺(jué)得一切的Shell都是浮云,我們每個(gè)人都能很好的使用它,駕馭它,更好的完成我們?nèi)粘_\(yùn)維的工作。曾經(jīng)有人說(shuō)過(guò),玩Linux不知道Shell,那就是不懂Linux;現(xiàn)在細(xì)細(xì)品味確實(shí)是這樣。為了讓更多的人能接觸Shell、了解Shell,使用Shel
3、l,所以今天開(kāi)設(shè)了這樣一個(gè)網(wǎng)絡(luò)課程,讓我們的Shell飛起來(lái)。好的,其他不多說(shuō)了,我們正式進(jìn)入主題,什么是Shell呢?Shell是操作系統(tǒng)的最外層,Shell可以合并編程語(yǔ)言以控制進(jìn)程和文件,以及啟動(dòng)和控制其它程序。shell 通過(guò)提示您輸入,向操作系統(tǒng)解釋該輸入,然后處理來(lái)自操作系統(tǒng)的任何結(jié)果輸出來(lái)管理您與操作系統(tǒng)之間的交互。簡(jiǎn)單來(lái)說(shuō)Shell就是一個(gè)用戶(hù)跟操作系統(tǒng)之間的一個(gè)命令解釋器。Shell是用戶(hù)與Linux操作系統(tǒng)之間溝通的橋梁。用戶(hù)可以輸入命令執(zhí)行,又可以利用 Shell腳本編程去運(yùn)行。Linux Shell種類(lèi)非常多,常見(jiàn)的有:Bourne Shell(/usr/bin/sh或
4、/bin/sh)、Bourne Again Shell(/bin/bash)、C Shell(/usr/bin/csh)、K Shell(/usr/bin/ksh)、Shell for Root(/sbin/sh)等。不同的Shell語(yǔ)言的語(yǔ)法有所不同,所以不能交換使用。最常用的shell是Bash,也就是Bourne Again Shell,由于易用和免費(fèi),Bash在日常工作中被廣泛使用,也是大多數(shù)Linux系統(tǒng)默認(rèn)的Shell。接下來(lái)我們來(lái)寫(xiě)一個(gè)簡(jiǎn)單的shell腳本。(shell腳本一般文件名以.sh結(jié)尾,同時(shí)文件第一行定義該腳本為shell腳本)vi first_shell.sh#!/b
5、in/bash#This is my First shellecho “Hello World !”這就是我們的第一個(gè)腳本,是不是很簡(jiǎn)單呢,注解如下:#!/bin/bash /表示定義該腳本是一個(gè)shell腳本(固定格式)。#This is my First shell /這里的#號(hào)屬于注解,沒(méi)有任何的意義,SHELL不會(huì)解析它。echo “Hello World !” /shell腳本主命令,我們執(zhí)行這個(gè)腳本講看到: Hello World ! 信息。腳本編寫(xiě)完畢,如何來(lái)執(zhí)行呢,首先執(zhí)行shell腳本需要執(zhí)行權(quán)限,賦予執(zhí)行權(quán)限:chmod o+x first_shell.sh 然后./fir
6、st_shell.sh執(zhí)行即可;也可以直接使用命令執(zhí)行: /bin/sh first_shell.sh,顯示效果一樣。2. Shell編程之變量詳解Shell編程語(yǔ)言是非類(lèi)型的解釋型語(yǔ)言,不像C+/JAVA語(yǔ)言編程時(shí)需要事先聲明變量,SHELL給一個(gè)變量賦值,實(shí)際上就是定義了變量,在Linux支持的所有shell中,都可以用賦值符號(hào)(=)為變量賦值。SHELL變量可分為兩類(lèi):局部變量和環(huán)境變量。局部變量只在創(chuàng)建它們的shell腳本中使用。而環(huán)境變量則可以在創(chuàng)建它們的shell及其派生出來(lái)的任意子進(jìn)程中使用。有些變量是用戶(hù)創(chuàng)建的,其他的則是專(zhuān)用shell變量。例如在腳本里面定義A=123 ,定義
7、這樣一個(gè)變量,前面變量名,后面是變量的值。引用變量可以使用$A,把變量放在腳本里面會(huì)出現(xiàn)什么樣的效果呢?如下:#!/bin/bash#Author wugk 2014-06-10A=123echo “Printf variables equal is $A”執(zhí)行腳本:sh test.sh,結(jié)果將會(huì)顯示:Printf variables equal is 123簡(jiǎn)單的理解變量,相當(dāng)于定義一個(gè)別名-名稱(chēng),引用的時(shí)候加上$符號(hào)就可以了。例如定義變量 name=wuguangke 執(zhí)行echo $name 將會(huì)顯示wuguangke SHELL常見(jiàn)的系統(tǒng)變量解析:$0 當(dāng)前程序的名稱(chēng)$n 當(dāng)前程序的第
8、n個(gè)參數(shù),n=1,2,9$* 當(dāng)前程序的所有參數(shù)(不包括程序本身)$# 當(dāng)前程序的參數(shù)個(gè)數(shù)(不包括程序本身)$? 命令或程序執(zhí)行完后的狀態(tài),一般返回0表示執(zhí)行成功。$UID 當(dāng)前用戶(hù)的ID$PWD 當(dāng)前所在的目錄我們來(lái)測(cè)試一個(gè)常用變量的腳本:vi auto_var.sh#!/bin/bash#auto print variables#by wugk 2014-09echo -e 03332m-0330mecho This is $0 param !echo This $1 is $1 param !echo This $2 is $2 param !echo -e 03332m-0330mec
9、ho This $* is $* param !echo This $# is $# param !echo This $? is $? param !echo緊接著我們來(lái)編寫(xiě)一個(gè)簡(jiǎn)單的echo打印菜單:#!/bin/bash#auto install httpd #by wugk 2014-09echo -e 03332m-0330mFILES=httpd-2.2.17.tar.bz2URL=PREFIX=/usr/local/apache2/echo -e 03336mPlease Select Install Menu:0330mechoecho 1)官方下載Httpd文件包.echo
10、2)解壓apache源碼包.echo 3)編譯安裝Httpd服務(wù)器.echo 4)啟動(dòng)HTTPD服務(wù)器.echo -e 03332m-0330msleep 203. If條件語(yǔ)句學(xué)習(xí)在Linux Shell編程中,if、for、while、case等條件流程控制語(yǔ)句用的非常多,把這些學(xué)好,對(duì)提升腳本的功力有非常大的幫助。下面將逐個(gè)來(lái)講解具體的用法: If條件判斷語(yǔ)句if (表達(dá)式) #if ( Variable in Array )語(yǔ)句1else語(yǔ)句2fi案例一,測(cè)試數(shù)字大小#!/bin/shNUM=100if ( $NUM 4 ) ;then echo “this num is $NUM g
11、reater 4 !”fi案例二,測(cè)試目錄是否存在,不存在則新建(注意,中括號(hào)之間必須要空格)#!/bin/sh#judge dir existif ! -d /data/20140515 ;then mkdir -p /data/20140515 elseecho “This DIR is exist,Please exit .”fi邏輯運(yùn)算符解析:-f 判斷文件是否存在 eg: if -f filename -d 判斷目錄是否存在 eg: if -d dir -eq等于 應(yīng)用于:整型比較-ne不等于 應(yīng)用于:整型比較-lt小于 應(yīng)用于:整型比較-gt大于 應(yīng)用于:整型比較-le小于或等于
12、應(yīng)用于:整型比較-ge大于或等于 應(yīng)用于:整型比較-a雙方都成立(and) 邏輯表達(dá)式 a 邏輯表達(dá)式-o單方成立(or) 邏輯表達(dá)式 o 邏輯表達(dá)式-z空字符串案例三,多個(gè)條件測(cè)試判斷#!/bin/shscores=80if $scores -gt 85 ; then echo very good!;elif $scores -gt 75 ; then echo good!;elif $scores -gt 60 ; then echo pass!;else echo no pass!fi4. 使用if條件語(yǔ)句編寫(xiě)MySQL備份腳本a) 自動(dòng)備份Mysql數(shù)據(jù)庫(kù)腳本#!/bin/sh #au
13、to backup mysql #wugk 2012-12-12 #Define PATH定義變量BAKDIR=/data/backup/mysql/date +%Y-%m-%dMYSQLDB=webappMYSQLPW=backupMYSQLUSR=backup#must use root user run scripts 必須使用root用戶(hù)運(yùn)行,$UID為系統(tǒng)變量if $UID -ne 0 ;then echo This script must use the root user ! ! ! sleep 2 exit 0fi#Define DIR and mkdir DIR 判斷目錄是否
14、存在,不存在則新建if ! -d $BAKDIR ;then mkdir -p $BAKDIRelse echo This is $BAKDIR exists. fi#Use mysqldump backup mysql 使用mysqldump備份數(shù)據(jù)庫(kù)/usr/bin/mysqldump -u$MYSQLUSR -p$MYSQLPW -d $MYSQLDB $BAKDIR/webapp_db.sqlecho The mysql backup successfully 5. IF條件綜合Shell實(shí)戰(zhàn)腳本編寫(xiě)通過(guò)if語(yǔ)句和之前變量的學(xué)習(xí),今天我們將把我們所學(xué)的綜合在一起來(lái)講解一個(gè)實(shí)戰(zhàn)運(yùn)維腳本,
15、一鍵安裝LAMP環(huán)境的腳本:一鍵源碼安裝LAMP腳本,先分解腳本的各個(gè)功能:打印菜單:1)安裝apache WEB服務(wù)器2)安裝Mysql DB服務(wù)器3)安裝PHP 服務(wù)器4)整合LAMP架構(gòu)并啟動(dòng)服務(wù)1、Apache服務(wù)器安裝部署。下載httpd-2.2.27.tar.gz版本,下載URL,解壓,進(jìn)入安裝目錄,configure;make ;make install2、Mysql服務(wù)器的安裝。下載mysql-5.5.20.tar.bz2版本,下載URL,解壓,進(jìn)入安裝目錄,configure;make ;make install3、PHP服務(wù)器安裝。下載php-5.3.8.tar.bz2版本
16、,下載URL,解壓,進(jìn)入安裝目錄,configure;make ;make install4、LAMP架構(gòu)的整合和服務(wù)啟動(dòng)。/usr/local/apache2/bin/apachectl startvi htdocs/index.phpvi auto_lamp.sh內(nèi)容如下:#!/bin/bash#auto install LAMP #by wugk 2014-11#Httpd define path variableH_FILES=httpd-2.2.27.tar.bz2H_FILES_DIR=httpd-2.2.27H_URL=H_PREFIX=/usr/local/apache2/#M
17、ySQL define path variableM_FILES=mysql-5.5.20.tar.gzM_FILES_DIR=mysql-5.5.20M_URL=M_PREFIX=/usr/local/mysql/#PHP define path variableP_FILES=php-5.3.28.tar.bz2P_FILES_DIR=php-5.3.28P_URL=P_PREFIX=/usr/local/php5/echo -e 03332m-0330mechoif -z $1 ;thenecho -e 03336mPlease Select Install Menu follow:03
18、30mecho -e 03332m1)編譯安裝Apache服務(wù)器0331mecho 2)編譯安裝MySQL服務(wù)器echo 3)編譯安裝PHP服務(wù)器echo 4)配置index.php并啟動(dòng)LAMP服務(wù)echo -e 03331mUsage: /bin/sh $0 1|2|3|4|help0330mexitfiif $1 -eq help ;then echo -e 03336mPlease Select Install Menu follow:0330m echo -e 03332m1)編譯安裝Apache服務(wù)器0331m echo 2)編譯安裝MySQL服務(wù)器 echo 3)編譯安裝PHP服
19、務(wù)器 echo 4)配置index.php并啟動(dòng)LAMP服務(wù) echo -e 03331mUsage: /bin/sh $0 1|2|3|4|help0330m exitfi#Install httpd web server if $1 -eq 1 ;thenwget -c $H_URL/$H_FILES & tar -jxvf $H_FILES & cd $H_FILES_DIR &./configure -prefix=$H_PREFIX if $? -eq 0 ;thenmake & make installecho -e n03332m-0330mecho -e 03332mThe $
20、H_FILES_DIR Server Install Success !0330melseecho -e 03332mThe $H_FILES_DIR Make or Make install ERROR,Please Check.exit 0fifi#Install Mysql DB server if $1 -eq 2 ;then wget -c $M_URL/$M_FILES & tar -xzvf $M_FILES & cd $M_FILES_DIR &yum install cmake -y ;cmake . -DCMAKE_INSTALL_PREFIX=$M_PREFIX -DMY
21、SQL_UNIX_ADDR=/tmp/mysql.sock -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306 -DWITH_XTRADB_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_READLINE=1 -D
22、ENABLED_LOCAL_INFILE=1 -DWITH_EXTRA_CHARSETS=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_BIG_TABLES=1 -DWITH_DEBUG=0make & make install/bin/cp support-files/my-f /etc/my.conf/bin/cp support-files/mysql.server /etc/init.d/mysqldchmod +x /etc/init.d/mysqldc
23、hkconfig -add mysqldchkconfig mysqld on if $? -eq 0 ;then make & make install echo -e n03332m-0330m echo -e 03332mThe $M_FILES_DIR Server Install Success !0330m else echo -e 03332mThe $M_FILES_DIR Make or Make install ERROR,Please Check. exit 0 fifi#Install PHP server if $1 -eq 3 ;then wget -c $P_UR
24、L/$P_FILES & tar -jxvf $P_FILES & cd $P_FILES_DIR &./configure -prefix=$P_PREFIX -with-config-file-path=$P_PREFIX/etc -with-mysql=$M_PREFIX -with-apxs2=$H_PREFIX/bin/apxs if $? -eq 0 ;then make ZEND_EXTRA_LIBS=-liconv & make install echo -e n03332m-0330m echo -e 03332mThe $P_FILES_DIR Server Install
25、 Success !0330m else echo -e 03332mThe $P_FILES_DIR Make or Make install ERROR,Please Check. exit 0 fifi#if $1 -eq 4 ;thensed -i /DirectoryIndex/s/index.html/index.php index.html/g $H_PREFIX/conf/httpd.conf $H_PREFIX/bin/apachectl restartecho AddType application/x-httpd-php .php $H_PREFIX/conf/httpd
26、.confIP=ifconfig eth1|grep Bcast|awk print $2|cut -d: -f2echo You can access http:/$IP/cat $H_PREFIX/htdocs/index.php EOFEOFFi6. 循環(huán)語(yǔ)句for For 變量 in 字符串do語(yǔ)句1done案例一,打印seq數(shù)字循環(huán)#!/bin/shfor i in seq 15doecho “NUM is $i”done案例二,求和1-100的值#!/bin/bash#auto sum 1 100j=0for (i=1;i=100;i+)do j=expr $i + $jdonee
27、cho $j案例三,找到相關(guān)log,然后批量打包#!/bin/shfor i in find /var/log -name “*.log”dotar czf 2014log.tgz $idone案例四,遠(yuǎn)程主機(jī)批量傳輸文件:#!/bin/bash#auto scp files for client#by authors wugk 2014for i in seq 100 200do scp -r /tmp/test.txt root192.168.1.$i:/data/webapps/wwwDone案例五,遠(yuǎn)程主機(jī)批量執(zhí)行命令:#!/bin/bash#auto scp files for cl
28、ient#by authors wugk 2014for i in seq 100 200do ssh -l root 192.168.1.$i ls /tmpdone7. 循環(huán)語(yǔ)句whilewhile 條件語(yǔ)句do語(yǔ)句1done案例一,while條件判斷數(shù)字 #!/bin/shi=1;while $i -lt 10 ;do echo $i; (i+);done;案例二,擴(kuò)展講解linux read命令read -p Please Input number:案例三,while逐行讀取某個(gè)文件#!/bin/shwhile read linedo echo $line;done ifcfg-bon
29、d0EOFDEVICE=bond0BOOTPROTO=static$NETWORK1$NETWORK2$NETWORK3ONBOOT=yesTYPE=EthernetNM_CONTROLLED=noEOF如上腳本為定義三個(gè)數(shù)組變量,然后分別來(lái)引用,這樣讓腳本可讀性更強(qiáng),更整潔。關(guān)于數(shù)組就簡(jiǎn)單的介紹到這里。13. Shell編程之a(chǎn)wk、sed命令案例分析在我們?nèi)粘5腟hell編程中我們會(huì)用到很多的一些語(yǔ)句,有的語(yǔ)句,如果用好了,可以讓我們的腳本更上一層樓,讓我們的功能更容易滿(mǎn)足企業(yè)的需求。Sed命令:sed s/192/10/g test.txt 把文件里面的192字符替換為10在文件開(kāi)頭或者
30、結(jié)尾添加字符:Awk命令:Find命令:Grep正則:14. 全備和增量備份Linux系統(tǒng)腳本在Linux中,我們經(jīng)常需要備份系統(tǒng)重要文件,例如/etc、/boot分區(qū)、重要網(wǎng)站數(shù)據(jù)等等,如果每天都完整備份的話(huà),會(huì)占用很大的空間,那我們改如何來(lái)備份呢?這里采用如下方法來(lái)備份:每周日進(jìn)行完整備份,其余每天為增量備份。那使用什么命令來(lái)備份呢,我們使用tar命令:全備份:tar -g /tmp/snapshot -czvf /tmp/2014_full_system_data.tar.gz /data/sh/增量備: tar -g /tmp/snapshot -czvf /tmp/2014_add0
31、1_system_data.tar.gz /data/sh/#!/bin/sh#Automatic Backup Linux System Files#Author wugk 2013-11-22#Define VariableSOURCE_DIR=( $*)TARGET_DIR=/data/backup/YEAR=date +%YMONTH=date +%mDAY=date +%dWEEK=date +%uA_NAME=date +%H%MFILES=system_backup.tgzCODE=$?if -z $* ;then echo -e 03332mUsage:nPlease Ente
32、r Your Backup Files or Directoriesn-nnUsage: $0 /boot /etc0330m exitfi#Determine Whether the Target Directory Existsif ! -d $TARGET_DIR/$YEAR/$MONTH/$DAY ;then mkdir -p $TARGET_DIR/$YEAR/$MONTH/$DAY echo -e 03332mThe $TARGET_DIR Created Successfully !0330mfi#EXEC Full_Backup Function CommandFull_Bac
33、kup()if $WEEK -eq 7 ;then rm -rf $TARGET_DIR/snapshot cd $TARGET_DIR/$YEAR/$MONTH/$DAY ;tar -g $TARGET_DIR/snapshot -czvf $FILES $SOURCE_DIR $CODE = 0 &echo -e -n03332mThese Full_Backup System Files Backup Successfully !0330mfi#Perform incremental BACKUP Function CommandAdd_Backup() if $WEEK -ne 7 ;
34、then cd $TARGET_DIR/$YEAR/$MONTH/$DAY ;tar -g $TARGET_DIR/snapshot -czvf $A_NAME$FILES $SOURCE_DIR $CODE = 0 &echo -e -n03332mThese Add_Backup System Files $TARGET_DIR/$YEAR/$MONTH/$DAY/$YEAR_$A_NAME$FILES Backup Successfully !0330m fisleep 3 Full_Backup;Add_Backup15. Shell編程之系統(tǒng)硬件信息數(shù)據(jù)庫(kù)收集首先我們創(chuàng)建數(shù)據(jù)庫(kù)表,格
35、式如下:CREATE TABLE audit_audit_system ( id int(11) NOT NULL AUTO_INCREMENT, ip_info varchar(50) NOT NULL, serv_info varchar(50) NOT NULL, cpu_info varchar(50) NOT NULL, disk_info varchar(50) NOT NULL, mem_info varchar(50) NOT NULL, load_info varchar(50) NOT NULL, mark_info varchar(50) NOT NULL, PRIMAR
36、Y KEY (id), UNIQUE KEY ip_info (ip_info), UNIQUE KEY ip_info_2 (ip_info) );然后編寫(xiě)腳本如下:#!/bin/sh#auto get system info#author wugk 2014-08-29echo -e 03334m 0331mcat EOF+Welcome to use system Collect+EOFip_info=ifconfig |grep Bcast|tail -1 |awk print $2|cut -d: -f 2cpu_info1=cat /proc/cpuinfo |grep model n
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度路燈照明設(shè)備節(jié)能環(huán)保采購(gòu)合同4篇
- 2025年度特色苗木種植基地建設(shè)項(xiàng)目合作協(xié)議4篇
- 二零二五年度動(dòng)漫游戲展攤位租賃協(xié)議3篇
- 2025年度精密模具購(gòu)銷(xiāo)合作協(xié)議書(shū)4篇
- 二零二五年度存量房買(mǎi)賣(mài)合同范本模板(含合同履行與監(jiān)督)4篇
- 2025版互聯(lián)網(wǎng)平臺(tái)用戶(hù)服務(wù)協(xié)議示范文本4篇
- 二零二五年度生態(tài)平衡維護(hù)與蟲(chóng)害防治合作協(xié)議4篇
- 《汽車(chē)尾氣排放》課件
- 2025至2030年回流焊錫機(jī)項(xiàng)目投資價(jià)值分析報(bào)告
- 2025年PVC膠條項(xiàng)目可行性研究報(bào)告
- C及C++程序設(shè)計(jì)課件
- 帶狀皰疹護(hù)理查房
- 公路路基路面現(xiàn)場(chǎng)測(cè)試隨機(jī)選點(diǎn)記錄
- 平衡計(jì)分卡-化戰(zhàn)略為行動(dòng)
- 國(guó)家自然科學(xué)基金(NSFC)申請(qǐng)書(shū)樣本
- 幼兒教師干預(yù)幼兒同伴沖突的行為研究 論文
- 湖南省省級(jí)溫室氣體排放清單土地利用變化和林業(yè)部分
- 材料設(shè)備驗(yàn)收管理流程圖
- 培訓(xùn)機(jī)構(gòu)消防安全承諾書(shū)范文(通用5篇)
- (完整版)建筑業(yè)10項(xiàng)新技術(shù)(2017年最新版)
- 第8期監(jiān)理月報(bào)(江蘇版)
評(píng)論
0/150
提交評(píng)論