A. linux中如何修改腳本文件搭建nfs服務
NFS輸出共享
首先查看系統中是否存在輸出共享
cat /etc/exports
如果以前沒有做過 這個應該是空的 出與安全考慮 即使啟動了NFS服務 也沒有關系 應為這個輸出共享的配置文件中為空
首先我們需要在這個空的文件記錄我們要輸出的共享目錄
格式如下:
nfs 共享名稱 客戶端主機地址
典型的記錄格式:
/home/share *(sync,ro)
/home/share 輸出共享的目錄
* 代表所有主機均可訪問如果想要單個主機可以直接替換*
sync,ro 是這是選項 ro許可權訪問許可權為只讀 rw可讀可寫
最後查詢2個服務是否正常運行
portmap和NFS這2個服務
service 服務名 status 查詢指定服務狀態
如果沒有運行就將其運行
service 服務名稱 start
按照這樣就OK了
但是有的服務默認不是開啟的 所以每次重起電腦就會不會開啟
所以需要改下服務開機啟動
NFS服務運行級別是3和5
chkconfig --level 35 nfs on
這樣重起也不會影響服務
示例:
我要將我的宿主目錄下某個文件共享輸出 輸出文件名為「config」
只希望1.0的網段可以訪問 許可權為只讀
首先打開配置文件
# vi /etc/exports
# /home/config 192.168.1.0(sync,ro)
保存
查看portmap服務狀態:
# service portmap status
查看nfs服務狀態:
# service nfs status
假如都是開啟的
為了防止問題 我們將其關閉後開啟
首先關閉這2個服務:
# service portmap stop
# service nfs stop
在開啟:
# service portmap start
# service nfs start
到這里所配置的NFS共享輸出已經OK了
可以用showmount -e nfs主機地址
進行查看!
如果查不到那可能沒有被輸出
可以重新輸出:
exportfs -rv 這樣應該OK了!
B. 幫改下LINUX SH腳本
#!/bin/bash
find /alidata/www/test1m/ -type d > /tmp/folder.log
for folder in `cat /tmp/folder.log`
do
size=$(/usr/bin/ -sk $folder |/bin/cut -f1)
#echo "$folder"
#echo "$size"
if [ $size -gt 1024 ]
then
#echo "$folder size $size K, larger than 1M"
chmod -R 500 $folder
fi
done
按照樓主的要求,寫了如上一小段腳本,首先找到/alidata/www/test1m/所有的文件夾,接下來逐個遍歷文件夾辨析其大小。如果文件夾超過了1M,那麼將此文件夾的許可權修改成400。
但是,我想提的是,如果其中有一個子文件夾,大小達到了1M,那麼作為其父文件夾肯定大小也超過1M。所以,結果就會變成「如果文件大小超過1M,那麼/alidata/www/test1m/」目錄以及其子目錄就變成了500的許可權(本人可讀可運行不可寫,其他人不可讀不可寫不可運行)。
C. 關於修改LINUX修改自己寫的腳本的圖標
ubuntu10.04下是這樣操作:右鍵shell腳本找到屬性,彈出一個對話框,點擊默認圖標圖片即可修改圖標
D. linux創建腳本時必須修改許可權才能執行,那怎麼不修改許可權就直接執行該腳本呢
linux腳本基本都是一些shell命令的組合,而shell命令大都是需要執行許可權才能運行的,如果不對文件添加執行許可權,那麼腳本將無法運行。
E. 求大佬,linux編寫帶參數的修改文件的腳本:modifile.sh 使用方式(基本要求):
方法如下:
String[] cmd = {"/bin/sh","-c","test.sh parm1 parm2"};
Runtime.getRuntime().exec(cmd);
F. linux 用腳本 修改.conf文件,即時生效問題
nginx
reload的啟動文件在reload的過程中不會改變
如果
-c
conf/nginx2.conf
reload的還是
conf/nginx2.conf
所以你修改
conf/nginx.conf是沒有效果的。
這個時候只能stop,然後重新啟動nginx,才能變更為nginx.conf
G. 第一次在Linux下編寫shell腳本,完全沒經驗,求哪位大神幫我修改!
你好!
第一次在Linux下編寫shell腳本,就能用這么多命令和變數,挺不錯的,點個贊!
下面是我修改你的腳本:
#!/bin/bash
#this shell is used to classify seed file to different folder.
# data文件夾中有boxing AH CH 三個文件夾,原始數據放在boxing中,希望通過執行shell將原始數據分別#存放到AH 和 CH
#!/bin/bash
#this shell is used to classify seed file to different folder.
# data文件夾中有boxing AH CH 三個文件夾,原始數據放在boxing中,希望通過執行shell將原始數據分別#存放到AH 和 CH
clear all
path01="/home/ch/data/boxing"
path00="/home/ch/data"
cd $path01
for file in `ls `
do
for sta in AH CH
do
cd $path00/$sta/
if [ ! -e "$file" ];then #判斷新文件夾下是否已經有這個文件
echo -e "this $file is not in this folder--$sta.
"
elif [ "$file" == *.*."$sta".seed ]||[ "$file" == *.AH.seed ];then #當文件符合這兩個命名條件之一時執行復制
cp $path01/$file $path00/$sta/
else
echo -e "this $file is not belong to the $sta folder.
"
fi
done
cd $path01
done
我評價一下:
你代碼的邏輯如下,不知道是不是你的本意。
如果 AH、CH中不存在boxing中的某文件,
那麼輸出」this $file is not in this folder--$sta.
「
跳過下面的測試,繼續下一輪循環
如果 AH、CH中存在boxing中的某文件,並且這個文件的文件名滿足X條件
那麼把這個文件從boxing文件夾中復制到AH或CH中
跳過下面的測試,繼續下一輪循環
如果 AH、CH中存在boxing中的某文件,但這個文件的文件名不滿足X條件
那麼輸出 "this $file is not belong to the $sta folder.
"
跳出,繼續下一輪循環
[ "$file" == *.*."$sta".seed ]
可以匹配
..AH.seed
.t.AH.seed
003.txt.AH.seed
這樣的過濾結果是你的本意嗎???
下面是修改的地方:附在對比圖里

H. linux怎麼實現文件更改後執行腳本
1,直接運行腳本;
2,寫個計劃任務加入自啟動項。
I. linux 批量修改主機名腳本
1、為了腳本在目標主機執行命令,你需要實現ssh無密碼訪問目標主機
2、ip.txt每行一個ip,新主機名包含ip,-p22不是必須的,可以去掉,或者替換成ssh定製的埠。
3、實例
#!/bin/bash
for dst_ip in `cat ip.txt`;do
HOSTNAME=`ssh -p22 root@$dst_ip "hostname"`
NEWNAME=server_${dst_ip}
ssh -p22 root@$dst_ip 'sed -i 's!${HOSTNAME}!${NEWNAME}!g' /etc/sysconfig/network'
ssh -p22 root@$dst_ip 'service syslog restart'
done
J. 如何在linux系統中編輯一個腳本,可以自動運行另一個文件夾里的所有腳本
你寫進crontab計劃任務就好了,具體操作,網路linux crontab
[root@localhost ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed