http://10.1.1.35/ule_basic/ule08.txt

來源:互聯網
上載者:User
--

時間任務

at crontab anaron



at
1,任務是一次性的
2,設定的時間點過了,就不能再執行


/etc/init.d/atd start--啟動對應的服務


chkconfig atd on --level 2345


[root@li ~]# at 09:47 042510--在10年04月25號的09點47分執行
at> echo 'hello'>/dev/pts/2
at> <EOT>--按ctrl+d 結束
job 15 at 2010-04-25 09:47--這裡可以看到什麼時間將會執行這個job



at
-l 查看時間job 相當於atq
-d 刪除時間job 相當於atrm
-c 顯示時間job的內容
-f 後接一個指令碼

/var/spool/at 目錄下存放的就是你的還沒有執行的at任務

[root@li ~]# ls /var/spool/at/
a0000e01bf7989 a00011014b8c0e a00012015396ce --這裡看就看出有三個沒有執行的at任務

[root@li ~]# file /var/spool/at/a0000e01bf7989
/var/spool/at/a0000e01bf7989: Bourne shell script text executable

[root@li ~]# cat /var/spool/at/a0000e01bf7989--可以在最後看到這個at任務的內容 與at -c一樣

[root@li ~]# atq
18 2012-04-25 09:50 a root
14 2025-10-04 09:45 a root
17 2011-04-25 09:50 a root

--從現在往後推一段時間執行
[root@li ~]# at now + 1 minutes --單位有minutes,hours,days,weeks星期
at> echo 'bbb' > /dev/pts/2
at> <EOT>
job 19 at 2010-04-25 10:00--這裡也是顯示它將要執行的時間和任務號


[root@li ~]# at 10:05 042510 -f at.sh--用-f參數接一個將要執行的指令碼程式
job 20 at 2010-04-25 10:05


at任務的使用限制:
/etc/at.allow
/etc/at.deny

/etc/at.allow--在這裡可以寫上允許執行at的普通使用者,一個使用者一行;存在的話就不用去考慮at.deny
/etc/at.deny--在這裡可以定上拒絕執行at的普通使用者,一個使用者一行;如果at.allow不存在,才生效


--預設系統只有一個/etc/at.deny,並且為空白,也就是說預設系統的任何普通使用者都可以使用at服務



batch executes commands when system load levels permit; in other words,
when the load average drops below 0.8, or the value specified in
the invocation of atrun.

batch 命令
當負載小於0.8時,才會執行 ;用法與at 一樣



--$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$


crontab


crontab特點:
1,能夠周期性的運行
2,時間過了就不執行,等下一個周期再執行


[root@li ~]# /etc/init.d/crond start--把對應的服務給啟起來,注意服務名是crond不是crontab

設定檔; /etc/crontab--一般設定目錄
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts

執行循環時間 執行身份 命令列目錄
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly


時間格式
分 時 日 月 周
01 * * * *

分鐘:0-59
小時:0-24
日:1-31 看月份定
月:1-12
周0-7 0和7都是代表星期天

時間格式的幾種特殊符號寫法
*代表每分鐘,每小時,每日,每星期,每月..........
, 代表分隔時間1,5,6,7
-代表一個時間範圍  7-20
/n代表每隔n個單位   /3



01 1,5,12,18,23 * * * --每天的1,5,12,18,23點的第一分鐘
01 * 5-15 * * --每月的5號到15號的每小時的第一分鐘
/2 * * * *--每兩分鐘
/3 1,3,8 1-5 3-6 7 --每年的3到6月的1到5號的1,3,8點的每三分鐘  (只有星期天才行)  



執行身份是用哪個使用者去執行,注意他要有執行許可權  


run-parts--後面一般接一個目錄,表示執行目錄下所有
[root@li ~]# which run-parts
/usr/bin/run-parts


例子1;
vim /etc/crontabcrontab -e -u d

* * * * * root echo 'crontab'> /dev/pts/2--每分鐘都會去echo一個crontab到/dev/pts/2終端


例子2;
vim /etc/crontab
* * * * * root run-parts /etc/cron.minutely--做一個每分鐘都會執行的目錄,把每分鐘都要執行的指令碼任務放到這個目錄裡,注意要有執行許可權 


注意:
--修改了/etc/crontab的配置後,不需要重啟crond服務,但要保證是開啟狀態


命令設定方法:

crontab
-e --編輯自己的時間任務
-l--列出自己的時間任務
-r--刪除時間任務
-i--刪除前要求確認

[root@li ~]# crontab -e
30 18 * * * /sbin/init 0--寫上每晚6點30分鐘自動關機    注意要root使用者寫才有效


[root@li ~]# crontab -l--列出自己的時間任務
30 18 * * * /sbin/init 0


[root@li ~]# crontab -r--全刪掉自己的時間任務,想要只刪除一行或者兩行,就要自己去手動刪除

crontab任務
/var/spool/cron/*      --*代表使用者


用root使用者管理普通使用者的時間任務
crontab -e -u d --編輯d民的時間任務
crontab -l -u d--列出d使用者的時間任務
crontab -r -u d --刪除d使用者的時間任務


crontab的使用限制:和atd服務是一樣的


/etc/cron.allow --寫上允許使用crontab的普通使用者名稱,一行寫一個;有些檔案的話就不考慮/etc/cron.deny
/etc/cron.deny --寫上拒絕使用crontab的普通使用者名稱,一行寫一個;如果/cron.allow不存在,才生效
 



--實際應用時要注意的是:
如果時間任務比較多的情況下,都是周期性執行,根據任務的需求,負載,時間規定,最好是把各項任務給平均分開,防止任務時間點擠在一起,造成伺服器的某一時間點負載過高




-----------------------------------------------

anacron 特點:
與crond服務配合使用,保證crond沒有執行的任務可以延後執行

設定檔:vim /etc/anacrontab

SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

天數 延後時間(分鐘)自訂的名字執行命令串 目錄

1 65 cron.daily run-parts /etc/cron.daily
7 70 cron.weekly run-parts /etc/cron.weekly
30 75 cron.monthly run-parts /etc/cron.monthly


工作原理:是用系統時間與時間標記作對比,從而判斷是否有沒有完成的crond服務

[root@li ~]# cat /var/spool/anacron/cron.daily
20100425--這是一個時間標記, anocron服務會拿這個時間標記與你的系統時間作對比,如果時間不是今天的,而是昨天的,說明此服務發現有crond的服務沒有完成 ,會延後執行

[root@li ~]# cat /var/spool/anacron/cron.monthly
20100327
[root@li ~]# cat /var/spool/anacron/cron.weekly
20100421

延後時間 一般不用調
自訂的名字自己定義

--此服務一般不用調,想要保證crond服務工作的完整性,把它開啟就可以

chkconfig anacron on












--$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$44


nfs 服務
network file system 網路檔案系統

是由sun公司提出的 ,用來做網路之間的檔案分享權限設定,是一種共用式叢集檔案系統


[root@station218 ~]# mount 10.1.1.35:/share/soft /mnt
mount: mount to NFS server '10.1.1.35' failed: RPC Error: Program not registered.--看到rpc報錯,一般就是portmap重啟註冊一下


RPC remote produrce call


[root@li ~]# netstat -ntlup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:770 0.0.0.0:* LISTEN 6527/rpc.mountd
tcp 0 0 0.0.0.0:49935 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 6447/portmap
tcp 0 0 0.0.0.0:756 0.0.0.0:* LISTEN 6512/rpc.rquotad
tcp 0 0 :::80 :::* LISTEN 2130/httpd
tcp 0 0 :::22 :::* LISTEN 2027/sshd
udp 0 0 0.0.0.0:2049 0.0.0.0:* -
udp 0 0 0.0.0.0:47852 0.0.0.0:* -
udp 0 0 0.0.0.0:111 0.0.0.0:* 6447/portmap
udp 0 0 0.0.0.0:753 0.0.0.0:* 6512/rpc.rquotad
udp 0 0 0.0.0.0:767 0.0.0.0:* 6527/rpc.mountd




portmap 111 連接埠 功能連接埠註冊
nfs 2049 連接埠
其他的rpc.xxx 啟動的連接埠是要向111連接埠註冊的


做nfs伺服器

[root@li ~]# /etc/init.d/portmap start
[root@li ~]# /etc/init.d/nfs start--把這兩個服務啟起來


設定檔:
vim /etc/exports

參數:
ro 唯讀
rw 可讀可寫
root_squash 代表用戶端以nfsnobody使用者掛載,預設不寫就有
no_root_squash 代表用戶端以root使用者掛載
sync同步
async非同步



/share/iso *(ro)--把/share/iso 共用給* (代表所有IP) ro (代表唯讀)

/share/iso *(rw)--rw代表可讀可寫

/share/iso 10.1.1.0/24(ro) --只共用給10.1.1的網段的電腦訪問
/share/iso 10.1.1.0/255.255.255.0(ro)

/share/iso 10.1.1.218/255.255.255.255(ro) --定義只10.1.1.218這台電腦可以訪問
/share/iso 10.1.1.218/32(ro)

/share/iso 10.1.1.218/32(ro) 10.1.1.254/32(ro) --定義只有218和254這兩台可以訪問


關於nfs許可權:
用戶端掛載目錄的許可權為服務端共用目錄的許可權


nfs服務共用目錄的預設許可權規定是以nfsnobody這個使用者來掛載
在/etc/passwd下有這麼一句
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin



/share/iso *(ro) 預設等於 /share/iso *(ro,root_squash)
--root_squash代表用戶端以nfsnobody使用者掛載


/share/iso 10.1.1.218/32(ro,no_root_squash) 10.1.1.254/32(ro,root_squash)
--no_root_squash代表用戶端以root使用者掛載,就算是218對/share/iso有w許可權,也不能寫,因為ro參數確定唯讀



/share/iso 10.1.1.218/32(rw,anonuid=533,anongid=534)--指定用戶端以uid=533,gid=534掛載




--修改了/etc/exports以後,要重啟服務使之生效


不用重啟服務,使修改過的設定檔生效

exportfs -arv --重新讀取/etc/exports檔案裡的共用,並匯入
-auv --卸載/etc/exports檔案裡的共用,別人showmount -e看不到,也掛載不了

[root@li iso]# cat /var/lib/nfs/etab
/share/install *(ro,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,mapping=identity,anonuid=65534,anongid=65534)
/share/soft *(ro,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,mapping=identity,anonuid=65534,anongid=65534)
/share/iso *(ro,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,mapping=identity,anonuid=65534,anongid=65534)


cat /var/lib/nfs/xtab



--用戶端的操作
showmount -e 10.1.1.35

mount 10.1.1.35:/share/iso /mnt






---------------------------------------------------------------------------------


關於掛載相關的問題:

1,用戶端mount了server端的共用目錄,但沒有umount,但server先關機,會造成用戶端順利關機可能會關不了,或者再umount這個目錄也umount不了

2,把這一句 mount 10.1.1.35:/share/iso/ /mnt 做成開機自動掛載
第一種方式:vim /etc/fstab
10.1.1.35:/share/iso /mnt nfs defaults 0 0

mount -a命令去驗證,驗證前先把/mnt給umount

第二種方式:
vim /etc/rc.local
mount 10.1.1.35:/share/iso/ /mnt


第三種方式:
使用autofs自動掛載

/etc/init.d/autofs --服務指令碼 ,保證服務是啟動狀態

/etc/auto.master--主設定檔

vim /etc/auto.master
/nfs /etc/auto.nfs--寫上這句配置,表示/nfs目錄下的掛載選項是由/etc/auto.nfs設定檔決定的 /nfs目錄和/etc/auto.nfs檔案都是不存在的,自己自訂建立

mkdir /nfs



vim /etc/auto.nfs
iso - 10.1.1.35:/share/iso
soft - 10.1.1.35:/share/soft
install - 10.1.1.35:/share/install
--這三句表示自動把10.1.1.35上的三個共用目錄分別掛載到/nfs/iso, /nfs/soft, /nfs/install三個目錄下,中間的-表示掛載參數,這裡用-是預設掛載



--掛載的目錄預設在/nfs目錄下用ls命令看不到, 但可以 cd /nfs/iso 進去, 這時會幫你自動掛載
大概五分鐘後,沒有使用的話,會自動umount掉







--------------------------------------------------------------------------


題目:

1,並每天打包並用bz2壓縮備份/var/log目錄到/tmp目錄下,以當天時間命名,用crontab做,並保證它的完整性

2,配置nfs服務

共用自己的/share/soft目錄,要求用戶端以root使用者身份掛載
/share/source目錄,要求用戶端以uid=600,gid=700的身份掛載
並用autofs服務實現自動掛載






聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.