යුනික්ස් හි විධානයක් ඇති බව මම දනිමි, ගොනුවක් අධීක්ෂණය කිරීමට සහ එයට ලියා ඇති වෙනස්කම් දැකීමට මට භාවිතා කළ හැකිය. ලොග් ලිපිගොනු පරීක්ෂා කිරීම සඳහා මෙය බෙහෙවින් ප්රයෝජනවත් විය.
එය හඳුන්වන්නේ කුමක්දැයි ඔබ දන්නවාද?
යුනික්ස් හි විධානයක් ඇති බව මම දනිමි, ගොනුවක් අධීක්ෂණය කිරීමට සහ එයට ලියා ඇති වෙනස්කම් දැකීමට මට භාවිතා කළ හැකිය. ලොග් ලිපිගොනු පරීක්ෂා කිරීම සඳහා මෙය බෙහෙවින් ප්රයෝජනවත් විය.
එය හඳුන්වන්නේ කුමක්දැයි ඔබ දන්නවාද?
Answers:
tail -F
ලොග් ගොනු භ්රමණය කිරීමේදී විශේෂයෙන් ප්රයෝජනවත් වන ගොනු වස්තු වෙනුවට ගොනු නාමයන් අනුගමනය කරනු ඇත.
tailf
දැන් අතහැර දමා ඇති අතර tail -f
එය ආරක්ෂිතයි. (මෙය ඔබේ පද්ධතියේ තහවුරු කරන්න man tailf
.) ප්රලේඛනය බලන්න: man7.org/linux/man-pages/man1/tailf.1.html
ජෝන් ස්කීට්ගේ පිළිතුරට අනුව ඔබ බොහෝ විට වලිගය අදහස් කර ඇත.
තවත් ප්රයෝජනවත් එකක් ඔරලෝසුවයි ; වරින් වර විධානයක් ක්රියාත්මක කිරීමට සහ ප්රතිදානය පූර්ණ තිරය බැලීමට එය ඔබට ඉඩ දෙයි. උදාහරණයක් වශයෙන්:
watch -n 10 -d ls -l / var / adm / messages
ls -l /var/adm/messages
සෑම තත්පර 10 කට වරක් විධානය ක්රියාත්මක කරනු ඇති අතර, පසුව ලැබෙන ලකුණු අතර ප්රතිදානයේ වෙනස ඉස්මතු කරයි. (උදාහරණයක් ලෙස ලොග්ෆයිල් එකක් කෙතරම් ඉක්මනින් වර්ධනය වේදැයි බැලීමට ප්රයෝජනවත් වේ).
inotifywait
සිට inotify-මෙවලම් වෙනස, ඔබ සෑම කාලය ගොනුව (හෝ බහලුම ඕනෑම ගොනු) විධාන ක්රියාත්මක කිරීමට අවශ්ය නම් ප්රයෝජනවත් වේ. උදාහරණයක් වශයෙන්:
inotifywait -r -m -e modify /var/log |
while read path _ file; do
echo $path$file modified
done
path
විචල්ය නාමයක් සඳහා විශාලතම තේරීම නොවන සටහනක් පමණි . මත zsh
, එය පරිසරය vars තටු සංවේදී නොවේ බව පෙනේ. මට නම්, සැකසීම් ද සැකසීමට path
හේතු වන PATH
අතර, එයින් මූලික වශයෙන් අදහස් කරන්නේ ඔබ එය නිවැරදි කරන තුරු කිසිවක් ක්රියාත්මක නොවන බවයි. මත bash
, සැකසුම path
කිසිදු බලපෑමක් නැත PATH
.
*PATH
ෙවත විචල්ය මාලාවක් එකම නම, නමුත් සිම්පල් . ගැටගැසුණු විචල්යයන් සැමවිටම පරිමාණයෙන් සහ අරාවකින් (උදා PATH
සහ path
) සමන්විත වන අතර එකක් වෙනස් කිරීම අනෙක වෙනස් කරයි. ප්රධාන ලක්ෂණය නම්, පරිමාණ අනුවාදයේ (ද :
) අරා අනුවාදය බෙදුම්කරු මත ස්වයංක්රීයව බෙදී යාමයි . ඔබම බලන්න print "$PATH\n$path"
. මෑන් පිටුවේ PARAMETERS USED BY THE SHELL
කොටසේ දෙවන ඡේදයේ zshparam(1)
වඩාත් සවිස්තරාත්මක තොරතුරු ඇත.
PATH
හා path
. ඒවා සියල්ලම මගේ පෙර අදහස් දැක්වීමේ කොටසේ ලැයිස්තුගත කර ඇත, නමුත් ඒවාට පමණක් සීමා නොවේ: FPATH
/ fpath
, CDPATH
/ cdpath
, MANPATH
/ manpath
, FIGNORE
/ fignore
, සහ තවත්.
විශේෂිත දෝෂයක් හෝ හැඳුනුම්පතක් සඳහා ලොග් ගොනුවක් සෙවීමට අවශ්ය බව මට පෙනෙන නිසා මම ඕවර less +FG
1 ක් භාවිතා කිරීමට කැමැත්තෙමි tail -f
. මට යමක් සෙවීමට අවශ්ය නම්, ^C
ගොනුව අනුගමනය කිරීම නැවැත්වීමට සහ ?
පසුපසට සෙවීම ආරම්භ කිරීමට මම ටයිප් කරමි .
යතුරු බන්ධන බොහෝ දුරට සමාන ය vi
. +
විකල්පය භාවිතා කරමින් ඕනෑම විධානයක් ආරම්භයේදී ආරම්භ කළ හැකිය:
+cmd Causes the specified cmd to be executed each time a new file is
examined. For example, +G causes less to initially display each
file starting at the end rather than the beginning.
සැබවින්ම දිගු ල logs ු-සටහන් සඳහා, -n
රේඛා අංකනය අක්රිය කරන විකල්පය භාවිතා කිරීම මට පහසුය . මෑන් පිටුවෙන්:
-n or --line-numbers
Suppresses line numbers. The default (to use line numbers) may
cause less to run more slowly in some cases, especially with a
very large input file. Suppressing line numbers with the -n
option will avoid this problem. Using line numbers means: the
line number will be displayed in the verbose prompt and in the =
command, and the v command will pass the current line number to
the editor (see also the discussion of LESSEDIT in PROMPTS
below).
1. අදහස් දැක්වීමේදී මෙය පෙන්වා දීම සඳහා rgmarcha වෙත තොප්පියක් .
alias
ඔබ අපේක්ෂිත විකල්ප සමඟ සැකසීමට මතක තබා ගන්න , එබැවින් ඔබට ඒවා සෑම විටම ටයිප් කිරීමට අවශ්ය නැත.
මම LaTeX ගොනුවක් සංස්කරණය කරමින් සිටින අතර මැද කොතැනක හෝ සිදුවන වෙනස්කම් සඳහා එය නිරීක්ෂණය කිරීමට අවශ්ය විය. මට ප්රයෝජනවත් වූ පහත දැක්වෙන කුඩා ෂෙල් පිටපත මම කසයෙන් තළා ගතිමි. එය වෙනත් කෙනෙකුට ප්රයෝජනවත් වේ යැයි මම බලාපොරොත්තු වෙමි.
#!/bin/bash
FILE="$1"
CMD="$2"
LAST=`ls -l "$FILE"`
while true; do
sleep 1
NEW=`ls -l "$FILE"`
if [ "$NEW" != "$LAST" ]; then
"$CMD" "$FILE"
LAST="$NEW"
fi
done
එය සුරකින්න watch.sh
සහ කරන්න chmod u+x watch.sh
. ඉන්පසු මම එය පහත පරිදි ක්රියාත්මක කරමි:
./watch.sh file.tex pdflatex
සත්ය වෙනස් කිරීමක් සිදුවුවහොත් පමණක් විධානය ක්රියාත්මක කිරීමට ඔබට අවශ්ය නම්, `md5sum "$FILE"`
ඒ වෙනුවට ඔබට භාවිතා කළ හැකිය `ls -l "$FILE"`
.
NEW=`tree -sDct . -I 'ignore_pattern|another_pattern'`
ඔබට ටේල්ෆ් විධානය එහි පහසුම එක භාවිතා කළ හැකිය
tailf logfile.log
වලිගය යනු සම්මත, සාම්ප්රදායික, සෑම තැනකම ලබා ගත හැකි යුනික්ස් මෙවලමකි. තව ටිකක් නවීන මෙවලමක් වන්නේ බහු ලිපිගොනු වන අතර එමඟින් ලිපිගොනු කිහිපයක් එකවර නිරීක්ෂණය කළ හැකි අතර සින්ටැක්ස් ඉස්මතු කරයි.
ගොනුව වලිගයට අමතරව සෙවීමට මට අවශ්ය නම්, මම "F" විධානය සමඟ අඩුවෙන් භාවිතා කරමි.
වලිගය භාවිතා කරන විට, ගොනුව පෙරළී හෝ සංස්කරණය මගින් ප්රතිස්ථාපනය කළ හැකි නම් අමතර තර්ක අවශ්ය බව මතක තබා ගන්න (vim සඳහා පෙරනිමි ප්රකාරය: w).
tail -f මඟින් වලිගය ගොනු විස්තරය ගබඩා කර එය අනුගමනය කරයි. ගොනුව ප්රතිස්ථාපනය කළහොත් විස්තරය වෙනස් වේ. ලිපිගොනු විස්තර කරන්නා අනුගමනය කිරීමෙන් ලැබෙන වාසිය නම් ගොනුව නැවත නම් කිරීම නම්, ඔබ තවමත් එය අනුගමනය කරනු ඇත.
tail --follow = නම් කරන ලද ගොනුව වරින් වර නැවත විවෘත කිරීමෙන් එය ප්රතිස්ථාපනය කර ඇත්දැයි බැලීමට එය වලිගය නිරීක්ෂණය කරයි.
--retry යනු ඔබට ලොග් ගොනුවක් වලිගය කිරීමට අවශ්ය නම් තවත් ප්රයෝජනවත් විකල්පයකි, නමුත් ගොනුව තවම නිර්මාණය කර නොමැත.
tail -F යනු --follow = --retry සඳහා කෙටිමඟකි.
ටේල්ෆ් අමතක කරන්න, වෙනස යනු ඔබට අවශ්ය විධානයයි. ලිපිගොනු 2 ක් අතර හෝ එක් ගොනුවකට ලියන විට ඒවා තථ්ය කාලීනව (හෝ සමීපව) සිදුවන විට ඒවා නැරඹීමට හොඳ උපක්රමයක් මෙන්න.
වාර්තා තබා ගැනීම සඳහා ගොනුවකට වෙනස්කම් ලිවීම වැනි ඔබට අවශ්ය පරිදි හැසිරීම වෙනස් කිරීමට ඔබට මෙම ක්රම භාවිතා කළ හැකිය. පහත දැක්වෙන විධානයන් සඳහා ඔරලෝසුව හෝ වෙනත් විකල්පයන් සමඟ සෙල්ලම් කරන්න.
ඔබට ලිපිගොනු 1 ක් ඇති අතර එහි වෙනස්කම් සිදු කර ඇති බැවින් ඔබට නැරඹීමට අවශ්යය:
එබැවින් කළ යුතු දේ මෙන්න:
ගොනුව පිටපත් කරන්න
cp file file2
වෙනස්කම් සොයා ගැනීමට bash ස්ක්රිප්ට් එකක් ලියන්න, සහ file2 යාවත්කාලීන කරන්න
touch check-differences.sh
nano check-differences.sh
chmod 755 check-differences.sh
තිර රචනය සඳහා මූලික අදහසක් මෙන්න. ඔබට අවශ්ය නම් එය ගොනුවකට ලිවීමට සලස්වන්න
#!/bin/bash
diff file file2
cp file file2
ඊළඟට ඔබට ඔරලෝසුව භාවිතයෙන් තිරයේ ඇති වෙනස්කම් නැරඹිය හැකිය
watch ./check-differences
මෙය සෑම තත්පර 2 කට පෙරනිමියෙන් යාවත්කාලීන වේ. එබැවින් ඔබට ආපසු ගොස් ඒවා කියවීමට අවශ්ය නම්, පිටපතෙහි ගොනුවකට වෙනසෙහි ප්රතිදානය ලියන්න.
cron
ඔබට ප්රතිදානය දැකීමට අවශ්ය නැතිනම් ඔබේ ස්ක්රිප්ට් නිතිපතා ධාවනය කිරීමට භාවිතා කරන්න.
tail -f somefile.txt
නව දත්ත සමඟ අනුචලනය කරන අතරම , සමහර විටless +G somefile.txt
ගොනුවේ නවතම දත්ත සමූහයක් බැලීමට මම කැමැත්තෙමි .