(1)轉(zhuǎn)義字符“”
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:主機(jī)域名、網(wǎng)頁空間、營銷軟件、網(wǎng)站建設(shè)、獨山子網(wǎng)站維護(hù)、網(wǎng)站推廣。
如果將“”放到特殊字符前面,shell就忽略這些特殊字符的原有含義,
把它們當(dāng)作普通字符對待,例如:
上 是將abc?*重命名為abc,將C:backup重命名為backup。因為 件
名中包含特殊字符,所以都使 了轉(zhuǎn)義字符“”。
(2)單引號“ ' ”
如果將字符串放到 對單引號之間,那么字符串中所有字符的特殊含義將被忽略,例如:
上面兩條命令完全等效
(3)雙引號“""”
雙引號的引用與單引號基本相同,包含在雙引號內(nèi)的大部分特殊字符
可以當(dāng)作普通字符處理,但是仍有一些特殊字符即使 雙引號括起來,也
仍然保留自己的特殊含義,比如“$”、“”和“`”。
從上面的輸出可以看出,“$”和“”在雙引號內(nèi)仍然保留了特殊含義。
上面的輸出中,字符“`”在雙引號中也保留了自己的特殊含義。
在linux的命令中,有些符號是特殊的字符,所以需要轉(zhuǎn)義掉,舉個例子:
你想輸出$abc
如果你執(zhí)行
echo $abc
他會打出一個空,因為$是個特殊符號,$abc就表示一個變量。如果你想輸出$abc而不是值得話。
echo \$abc 他便會輸出\$abc 。這就是轉(zhuǎn)義。明白了吧
摘要: Linux , crontab
整理crontab的使用,包括cron表達(dá)式,設(shè)置和刪除任務(wù),權(quán)限管理,查看日志
crontab命令被用來提交和管理用戶的需要周期性執(zhí)行的任務(wù),與windows下的計劃任務(wù)類似,當(dāng)安裝完成操作系統(tǒng)后,默認(rèn)會安裝此服務(wù)工具,并且會自動啟動crond進(jìn)程,crond進(jìn)程 每分鐘 會定期檢查是否有要執(zhí)行的任務(wù),如果有要執(zhí)行的任務(wù),則自動執(zhí)行該任務(wù)
使用如下命令進(jìn)行crontab服務(wù)的開啟,關(guān)閉,重啟,和狀態(tài)查看
其中啟動關(guān)閉需要root權(quán)限,所有用戶可以查看狀態(tài)例如
crontab通過設(shè)置cron表達(dá)式來讓計算機(jī)識別如何定時調(diào)度任務(wù),cron表達(dá)式的基本語法
前五個 * 分別代表 分鐘 , 小時 , 當(dāng)月第幾日 , 當(dāng)年第幾月 , 周幾 ,最后的 command 是要執(zhí)行的任務(wù)語句,詳情和取值范圍見下圖
其中* 代表所有值,比如以下代表在每年9月27日17點07分執(zhí)行一個命令,不限制周幾
可見crontab最小顆粒度是以 分鐘級別 進(jìn)行調(diào)度, 最粗級別是月 ,不限制年,因此 至少每年執(zhí)行一次 。
在cron表達(dá)式中最后一個*代表周幾,如果前面的*限死了日期, 且周幾這個位置不為*為一個給定值 ,必定可能和周幾沖突,當(dāng)發(fā)生沖突時兩者為 OR 的關(guān)系,即如果時間滿足指定的日期,或者時間滿足指定的周幾,都會執(zhí)行任務(wù),舉個例子
當(dāng)天為9月27日,星期一,以上兩條語句都會被執(zhí)行,一個在當(dāng)天的17點13分,一個在當(dāng)天的17點17分,在/tmp/cron.txt文件中會先后寫入兩條記錄
當(dāng)周幾這個位置設(shè)置為*時,無需關(guān)注沖突問題,即不對周幾做限制
除此之外cron表達(dá)式支持一些特征符號配合阿拉伯?dāng)?shù)字來設(shè)置每個*,這樣可以實現(xiàn) 或 , 每隔 , 從,到 的邏輯,分別對應(yīng)三種常用符號 , , / , - ,分別解釋如下
分別舉幾個例子
(1)17點43分和44分執(zhí)行任務(wù)
(2)每隔2分鐘執(zhí)行任務(wù)
(3)從52分帶56分一直執(zhí)行任務(wù),一共執(zhí)行5次
下面來整理一波常用的cron表達(dá)式
目前已知的需要轉(zhuǎn)義的是百分號 % ,尤其是在使用日期命令date做日期格式化時,否則無法在crontab中運行,因為%是crontab中的一個有意義的符號,應(yīng)該這樣設(shè)置帶有百分號的command例如
如果不這樣設(shè)置,也可以單獨寫在一個shell腳本中使用bash解釋執(zhí)行也能夠正常運行
在當(dāng)前用戶下使用 crontab -e 來編輯添加定時任務(wù),第一次使用會顯示no crontab for用戶,然后選擇一種編輯方式選擇輸入3回車,如果首次沒有設(shè)置后期也可以在終端輸入 select-editor 進(jìn)行設(shè)置
設(shè)置完成之后輸入 crontab -e 進(jìn)入,該方法進(jìn)入的是當(dāng)前用戶的crontab界面,新起一行即可寫入cron表達(dá)式進(jìn)行設(shè)置,例如
其中可以使用 # 注釋掉某行,則該cron表達(dá)式不生效,編輯完成后輸入 wq! 進(jìn)行保存關(guān)閉
一種直接的方式是使用 crontab -r ,這種方法刪除該用戶下所有crontab任務(wù),其他用戶的任務(wù)不影響都不會被刪除,慎用,如果只是要刪除其中某一條任務(wù),則直接進(jìn)入編輯刪除這一行即可
任務(wù)查看使用 crontab -l 命令,該命令可以查看當(dāng)前用戶的crontab任務(wù)
一臺linux機(jī)器上每個不同用戶都有自己的crontab -e文件設(shè)置自己的定時任務(wù),這些任務(wù)互不干涉運行在一臺機(jī)器上,其中root用戶可以在使用crontab -e的時候可以切換其他用戶進(jìn)行設(shè)定,比如
以上語句是在root下給test用戶設(shè)置定時任務(wù),如果是普通用戶則報錯沒有-u權(quán)限
crontab -e是 用戶級別 的,設(shè)置每個用戶的自己的定時任務(wù),/etc/crontab是 系統(tǒng)級別 的,設(shè)置系統(tǒng)例行的任務(wù),/etc/crontab只有root用戶有讀寫權(quán)限,普通用戶只有讀權(quán)限。
/etc/crontab相比于crontab -e多出環(huán)境變量的配置和用戶名配置,由root用戶統(tǒng)一給各個任務(wù)配置用戶名,設(shè)置的環(huán)境變量對/etc/crontab下所有人任務(wù)生效,比如修改他的python的搜索路徑為anaconda
這個設(shè)置只對/etc/crontab有效,對crontab -e的每個用戶設(shè)置的任務(wù)無效
/etc/crontab中設(shè)置系統(tǒng)例行的定時任務(wù)
表示分別在小時,每天,每周,每月定時執(zhí)行系統(tǒng)任務(wù),其中 test -x /usr/sbin/anacron 代表條件測試文件是否可執(zhí)行,如果可執(zhí)行忽略||后面的命令內(nèi)容,這種情況下系統(tǒng)走 anacron ,會讀取 /etc/anacrontab 下的內(nèi)容進(jìn)行替代
可見機(jī)器調(diào)用 run-parts 命令和 /etc/cron.daily , /etc/cron.weekly , /etc/cron.monthly 執(zhí)行定時任務(wù)
既然linux支持不同用戶設(shè)置自己的任務(wù),則在一個地方 /var/spool/cron/crontabs 看到所有用戶設(shè)置的任務(wù),這個目錄只有root有權(quán)限進(jìn)入
目錄下有三個文件,對應(yīng)三個用戶,root用戶對這些文件可讀可寫,相當(dāng)于跟crontab -e可以在這設(shè)置和修改任務(wù),直接在里面編輯等同于切到某用戶執(zhí)行crontab -e
ubuntu下crontab默認(rèn)沒有日志文件,需要在配置中設(shè)置日志文件位置,配置文件位于 /etc/rsyslog.d/50-default.conf 將這一行注釋取消
設(shè)置后重啟rsyslog服務(wù)
下面看下一crontab日志的格式
日志中包括 執(zhí)行時間 , 主機(jī)名 , 用戶 ,以及 執(zhí)行的任務(wù)信息 ,任務(wù)信息包括執(zhí)行的用戶cron的command以及設(shè)置編輯crontab的記錄,表明在 哪個時間 執(zhí)行了 哪個用戶 的 哪個命令語句 。
其中這兩行反應(yīng)了報錯信息
crontab執(zhí)行腳本時是不會直接錯誤的信息輸出,而是會以郵件的形式發(fā)送到你的郵箱里,這時候就需要郵件服務(wù)器了,如果你沒有安裝郵件服務(wù)器,它就會報這個錯: No MTA installed, discarding output ,解決方案是將錯誤內(nèi)容寫入文件,比如在command后面添加 /var/log/cron.log 21 追加,如果是 就是覆蓋了,則crontab歷史日志每次都會被刪除,例如
或者就寫入其他目錄下
標(biāo)題名稱:linux命令轉(zhuǎn)譯 linux翻譯成中文
本文地址:http://aaarwkj.com/article40/doodiho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、定制網(wǎng)站、網(wǎng)站營銷、自適應(yīng)網(wǎng)站、微信小程序、營銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)