انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => انجمن عمومی => نویسنده: elyas74 در 10 فروردین 1393، 05:03 ب‌ظ

عنوان: مشکل اسکریپت
ارسال شده توسط: elyas74 در 10 فروردین 1393، 05:03 ب‌ظ
سلام،
من برای دانلود های شبانه ام یک اسکریپت خیلی ساده نوشتم که با چند تا کد دیگه برام کار دانلود رو میکنن،‌ مشکلش اینه که بعد از شروع و در حین دانلود اطلاعات(نتایج دستورات) داخل فایل مورد نظر درست میره ولی بعد از تموم شدن و روشن کردن سیستم فقط اخرین ساعت داخل فایل هست. ممنون میشم راهنماییم کنین.
آیا ممکنه به دلیل زیاد شدن اطلاعات داخل فایل باشه؟(چون در مثال های کوچیک مشکلی نیست)

#!/bin/bash
cd /home/elyas
sudo shutdown -h 7:55  | tee download_res.txt
sudo clock | cut -c 17-24 | tee download_res.txt
axel http://ftp2.nluug.nl/languages/qt/official_releases/qt/5.2/5.2.1/qt-opensource-linux-x64-android-5.2.1.run \
| tee download_res.txt
axel http://anychimirror101.mirrors.tds.net/pub/Qt/official_releases/qt/5.2/5.2.1/qt-opensource-linux-x64-5.2.1.run \
| tee download_res.txt
sudo yum -y update | tee download_res.txt
#sudo yum install -y emacs | tee download_res.txt
sudo clock | cut -c 17-24 | tee download_res.txt
poweroff
عنوان: پاسخ : مشکل اسکریپت
ارسال شده توسط: dostajn در 11 فروردین 1393، 07:34 ق‌ظ
سلام،
من برای دانلود های شبانه ام یک اسکریپت خیلی ساده نوشتم که با چند تا کد دیگه برام کار دانلود رو میکنن،‌ مشکلش اینه که بعد از شروع و در حین دانلود اطلاعات(نتایج دستورات) داخل فایل مورد نظر درست میره ولی بعد از تموم شدن و روشن کردن سیستم فقط اخرین ساعت داخل فایل هست. ممنون میشم راهنماییم کنین.
آیا ممکنه به دلیل زیاد شدن اطلاعات داخل فایل باشه؟(چون در مثال های کوچیک مشکلی نیست)

#!/bin/bash
cd /home/elyas
sudo shutdown -h 7:55  | tee download_res.txt
sudo clock | cut -c 17-24 | tee download_res.txt
axel http://ftp2.nluug.nl/languages/qt/official_releases/qt/5.2/5.2.1/qt-opensource-linux-x64-android-5.2.1.run \
| tee download_res.txt
axel http://anychimirror101.mirrors.tds.net/pub/Qt/official_releases/qt/5.2/5.2.1/qt-opensource-linux-x64-5.2.1.run \
| tee download_res.txt
sudo yum -y update | tee download_res.txt
#sudo yum install -y emacs | tee download_res.txt
sudo clock | cut -c 17-24 | tee download_res.txt
poweroff
با دستور tee کار نکردم اما این جور که از توضیحات نرم افزار بر می آد:
شما با هربار درخواست نوشتن در فایل گزارش اصطلاحا دارید overwrite می کنید یعنی فایل رو از نو می نویسید. باید از گزینه

       -a, --append
      append to the given FILEs, do not overwrite
منبع:
http://unixhelp.ed.ac.uk/CGI/man-cgi?tee
در ضمن فکر نکنم نیاز به این دستور داشته باشید با همون فرمان << هم می شود گزارشات رو ذخیره کرد
عنوان: پاسخ : مشکل اسکریپت
ارسال شده توسط: mhch در 11 فروردین 1393، 10:20 ق‌ظ
با عرض پوزش کد ت رو نخوندم
اما برای نوشتن روی یه فایل میتونی از < استفاده کنی
برای نوشتن در انتهای یه فایل میتونی از << استفاده کنی
خروجی استاندارد برابر 1 هست
خروجی ارور برابر 2 هست
ورودی استاندارد هم برابر 0 هست
مثال :
ls 1>list-test
cat list-test
ls -l /tmp/ 1>>list-test
عنوان: پاسخ : مشکل اسکریپت
ارسال شده توسط: elyas74 در 11 فروردین 1393، 05:10 ب‌ظ
درسته مشکل override شدن فایل بود، ممنونم :D

راستی دستور tee برای دو شاخه کردن خروجی دستور ها به کار میره، یعنی اون جاهایی ک من از دستور tee استفاده کردم میخوام که هم خروجی دستور ها داخل فایلم ذخیره بشه و هم در ترمیالی که دستور رو اجرا کرده نمایش داده بشه.