最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

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

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

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

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

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

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

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

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

如果希望日志進入系統(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  # 可選:刪除臨時日志文件
  • logger -t "TAG":給日志添加標簽(方便過濾)。
  • -f:指定日志文件路徑。

最佳實踐

  1. 推薦方法 1 或 2(簡單可靠)。
  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

驗證日志是否生效

tail -f /var/log/mysql_backup.log  # 實時查看日志

或手動運行腳本并檢查日志:

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

總結(jié)

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

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

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

相關(guān)文章

最新評論

鄂托克旗| 麻阳| 房山区| 明水县| 宜章县| 辽宁省| 岑巩县| 沂南县| 义乌市| 沧源| 荃湾区| 邮箱| 自治县| 定西市| 合肥市| 图们市| 宁蒗| 庐江县| 石嘴山市| 罗甸县| 崇义县| 镇坪县| 佛教| 丹棱县| 拉萨市| 肥西县| 莱州市| 江油市| 万州区| 泸水县| 宁强县| 贵定县| 波密县| 镇安县| 奎屯市| 博湖县| 山丹县| 岗巴县| 乌什县| 揭东县| 盖州市|