欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

執(zhí)行shell 腳本將日志全部輸出到文件的多種方法

 更新時(shí)間:2025年07月17日 09:16:33   作者:liuyunshengsir  
執(zhí)行Shell腳本時(shí),可將所有輸出(stdout+stderr)重定向到日志文件,方法包括直接重定向(> 2>&1)、追加模式(>>)、tee命令(屏幕+文件)、腳本內(nèi)重定向(exec)及l(fā)ogger系統(tǒng)日志,推薦方法1或2,結(jié)合logrotate管理日志大小

在執(zhí)行 Shell 腳本時(shí),如果需要將 所有輸出(包括標(biāo)準(zhǔn)輸出 stdout 和錯(cuò)誤輸出 stderr) 重定向到日志文件,可以使用以下方法:

方法 1:直接重定向(推薦)

/appdata/mysql_backup_dump.sh > /var/log/mysql_backup.log 2>&1
  • >:將標(biāo)準(zhǔn)輸出(stdout)重定向到 /var/log/mysql_backup.log。
  • 2>&1:將錯(cuò)誤輸出(stderr)合并到標(biāo)準(zhǔn)輸出(即也寫入日志文件)。
  • 效果:所有輸出(包括 echo、mysqldump 正常信息、錯(cuò)誤信息)都會(huì)寫入日志文件。

方法 2:追加模式(不覆蓋舊日志)

/appdata/mysql_backup_dump.sh >> /var/log/mysql_backup.log 2>&1
  • >>:追加到日志文件(而不是覆蓋),適合長(zhǎng)期運(yùn)行的備份任務(wù)。

方法 3:使用 tee 命令(同時(shí)輸出到屏幕和文件)

/appdata/mysql_backup_dump.sh 2>&1 | tee -a /var/log/mysql_backup.log
  • tee -a:將輸出 同時(shí)顯示在終端 并 追加到日志文件(-a 表示追加)。
  • 適用場(chǎng)景:調(diào)試時(shí)想實(shí)時(shí)查看輸出,同時(shí)保留日志。

方法 4:在腳本內(nèi)部重定向

如果腳本是自己編寫的,可以在腳本開頭指定日志文件:

#!/bin/bash
exec > /var/log/mysql_backup.log 2>&1  # 所有后續(xù)輸出都重定向到日志
echo "Backup started at $(date)"
# 備份命令(如 mysqldump)
  • exec:重定向整個(gè)腳本的輸出,包括后續(xù)所有命令。

方法 5:使用 logger 寫入系統(tǒng)日志

如果希望日志進(jìn)入系統(tǒng)日志(如 /var/log/syslog/var/log/messages):

/appdata/mysql_backup_dump.sh > /tmp/backup.log 2>&1
logger -t "MySQL_BACKUP" -f /tmp/backup.log  # 寫入系統(tǒng)日志
rm -f /tmp/backup.log  # 可選:刪除臨時(shí)日志文件
  • logger -t "TAG":給日志添加標(biāo)簽(方便過濾)。
  • -f:指定日志文件路徑。

最佳實(shí)踐

  1. 推薦方法 1 或 2(簡(jiǎn)單可靠)。
  2. 日志輪轉(zhuǎn):使用 logrotate 管理日志文件,避免日志過大:
    # /etc/logrotate.d/mysql_backup
    /var/log/mysql_backup.log {
        daily
        rotate 7
        compress
        missingok
        notifempty
    }
  3. 在 cron 中記錄日志
    0 2 * * * /appdata/mysql_backup_dump.sh > /var/log/mysql_backup.log 2>&1

驗(yàn)證日志是否生效

tail -f /var/log/mysql_backup.log  # 實(shí)時(shí)查看日志

或手動(dòng)運(yùn)行腳本并檢查日志:

/appdata/mysql_backup_dump.sh > /var/log/mysql_backup.log 2>&1
cat /var/log/mysql_backup.log

總結(jié)

方法命令特點(diǎn)
覆蓋日志> log 2>&1每次運(yùn)行覆蓋舊日志
追加日志>> log 2>&1保留歷史日志
屏幕+文件2>&1 | tee -a log調(diào)試時(shí)使用
腳本內(nèi)重定向exec > log 2>&1整個(gè)腳本生效
系統(tǒng)日志logger -t TAG -f log集成到系統(tǒng)日志

選擇最適合你的方式即可!

到此這篇關(guān)于執(zhí)行shell 腳本將日志全部輸出到文件的多種方法的文章就介紹到這了,更多相關(guān)shell腳本日志輸出到文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用find命令快速定位配置文件位置

    使用find命令快速定位配置文件位置

    大家知道在配置的時(shí)候咱們經(jīng)常需要修改配置文件,甚至現(xiàn)在的開發(fā)就是配配配,記又記不住,每次自己查找太費(fèi)時(shí)間,最近學(xué)會(huì)了一個(gè)命令-find,現(xiàn)在分享以下,本文以nginx為例子給大家詳細(xì)介紹,對(duì)find命令定位配置文件位置相關(guān)知識(shí)感興趣的朋友一起看看吧
    2022-12-12
  • Linux中的命令連接符詳解

    Linux中的命令連接符詳解

    Linux中執(zhí)行多條命令的方法包括分號(hào)(順序執(zhí)行)、&&(前成功則執(zhí)行)、||(前失敗則執(zhí)行),組合時(shí)&&優(yōu)先級(jí)高于||,可控制執(zhí)行流程,在ssh中也可使用這些連接符執(zhí)行遠(yuǎn)程命令,本文給大家介紹Linux中的命令連接符,感興趣的朋友一起看看吧
    2025-07-07
  • Shell腳本實(shí)現(xiàn)SSL證書過期巡檢

    Shell腳本實(shí)現(xiàn)SSL證書過期巡檢

    我們知道?SSL?證書是會(huì)過期的,一旦過期之后需要重新申請(qǐng),如果沒有及時(shí)更換證書的話,就有可能導(dǎo)致網(wǎng)站出問題,所以本文分享一個(gè)自動(dòng)檢測(cè)?SSL?是否過期的?shell?腳本吧
    2023-08-08
  • Linux中執(zhí)行shell腳本的4種方法總結(jié)

    Linux中執(zhí)行shell腳本的4種方法總結(jié)

    這篇文章主要介紹了Linux中執(zhí)行shell腳本的4種方法總結(jié),即在Linux中運(yùn)行shell腳本的4種方法,需要的朋友可以參考下
    2014-08-08
  • Linux下使用nextcloud搭建個(gè)人網(wǎng)盤代碼實(shí)例

    Linux下使用nextcloud搭建個(gè)人網(wǎng)盤代碼實(shí)例

    這篇文章主要介紹了Linux下使用nextcloud搭建個(gè)人網(wǎng)盤代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,,需要的朋友可以參考下
    2019-06-06
  • linux shell將變量拼接到命令中

    linux shell將變量拼接到命令中

    本文主要介紹了linux shell將變量拼接到命令中,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Linux命令之systemctl用法詳解

    Linux命令之systemctl用法詳解

    Linux 服務(wù)管理兩種方式service和systemctl,systemd是Linux系統(tǒng)最新的初始化系統(tǒng)(init),作用是提高系統(tǒng)的啟動(dòng)速度,盡可能啟動(dòng)較少的進(jìn)程,盡可能更多進(jìn)程并發(fā)啟動(dòng),本文給大家詳細(xì)講解了Linux systemctl命令用法,需要的朋友可以參考下
    2024-03-03
  • Linux中Shell腳本判斷文件/文件夾是否存在方法

    Linux中Shell腳本判斷文件/文件夾是否存在方法

    很多時(shí)候我們?cè)谧鲞\(yùn)維的時(shí)候,我們需要做一些自動(dòng)化,這時(shí)我們就需要寫一些shell腳本,既然要用到shell腳本,就免不了文件操作,這篇文章主要給大家介紹了關(guān)于Linux中Shell腳本判斷文件/文件夾是否存在的相關(guān)資料,需要的朋友可以參考下
    2023-06-06
  • 詳解Linux 操作系統(tǒng)下安裝rpm包的方法步驟

    詳解Linux 操作系統(tǒng)下安裝rpm包的方法步驟

    這篇文章主要介紹了詳解Linux 操作系統(tǒng)下安裝rpm包的方法步驟的相關(guān)資料,需要的朋友可以參考下
    2015-11-11
  • 隱藏shell腳本內(nèi)容的工具?shc詳解

    隱藏shell腳本內(nèi)容的工具?shc詳解

    本文主要介紹了隱藏shell腳本內(nèi)容的工具?shc,?雖然它加密的安全性不高,但是我們平??梢园阉鳛橐粋€(gè)shell腳本代碼隱藏和混淆工具來使用,對(duì)shell腳本隱藏相關(guān)知識(shí)感興趣的朋友一起看看吧
    2021-11-11

最新評(píng)論