انجمنهای فارسی اوبونتو
کمک و پشتیبانی => انجمن عمومی => نویسنده: Divan در 29 بهمن 1399، 01:31 بظ
-
سلام خدمت اساتیدrsync روی سرور اه انداختم میخوام که از یک سرور به سرور دیگه یه دایکتوری بخصوصو مپی بکنه. این مرحله انجام شده
میخوام که هر یکساعت اینکارو انجام بده، تاجایی که سرچ کردم باید کرون جاب بسازم اما متاسفانه بلد نیستم و آموزش درستی هم به فارسی پیدا نکردم
کسی میتونه بهم بگه چکارکنم ؟
ممنون
-
با دستور crontab -e میتونید فایل crontab کاربر کنونی خودتون رو ویرایش کنید و یک خط اضافه کنید که در یک بازه زمانی مشخص دستور مورد نظر شما رو اجرا کنه. باید man crontab رو مطالعه کنید که ببینید نوشتن این خط به چه صورت هست.
برای مثال:
0 * * * * dosomething
راس هر ساعت دستور dosomething رو اجرا میکنه.
میتونید برای نوشتن بازه زمانی از ابزارهایی مثل https://crontab.guru کمک بگیرید.
اگر قصد دارید دستور با دسترسی ریشه اجرا بشه sudo crontab -e رو استفاده کنید.
-
ممنون از راهنماییتون
میشه دقیقا بهم دستوراتی که تایپ کنمو بفرمایید
میخوام هر یکس اعت rsync فعال بشه و اطلاعاتو کپی بکنه روی سرور دیگه
-
0 * * * * sshpass -p '*******' rsync -avh /var/host/recording/raw root@1192.168.1.1:/home/vod/public_html/bookmark >/dev/null 2>&1
با استفاده از sshpass موقع سینک نباید ازم پسور بخواد اما میخواد
-
میتونید یه اسکریپت توی /etc/cron.hourly/ بسازید. اینجوری هر یک ساعت یکبار اجرا میشه. (هر چیزی که توی /etc/cron.hourly/ باشه هر یه ساعت یکبار اجرا میشه، فرقی نداره اسکریپت باشه یا یه فایل باینری)
یا اینکه میتونید یه cronjob بسازید مثل همینی که توی چنتا ارسال قبل هست. اون cronjob میگه همیشه سر دقیقه اول هر ساعت، dosomthing رو اجرا کن. مثلا بهجای dosomthing میتونید بزارید ping -c 3 8.8.8.8.
قسمت اول میگه توی چه دقیقهای اجرا بشه. قسمت دوم میگه توی چه ساعتی اجرا بشه. قسمت سوم میگه توی چه روزی از ماه اجرا بشه. قسمت چهارم میگه توی چه ماهی اجرا بشه و قسمت پنجم میگه توی چه روزی از هفته اجرا بشه. قسمت ششم هم میگه چه دستوری اجرا بشه.
میشه به جای دستور، مسیر یه اسکریپت رو داد و دستورات رو توی اسکریپت نوشت. اینجوری هر دفعه اسکریپت اجرا میشه که اسکریپت هم دستورات ما رو اجرا میکنه.
حواستون باشه اسکریپت دسترسی اجرایی داشته باشه یا اینکه اسکریپت رو با bash اجرا کنید
/bin/bash /path/to/script
-
اذیتتون میکنم اما چون هیچ زمینه ایی در ذهنم از این موضوع نیست نمیدونم چکارکنم
میتونم خواهش کنم اسکریپتی که /etc/cron.hourly/ باید بسازمو بهم بفرمایید چه مواردی باید داخلش بنویسم
ممنون میشم
-
اول توی /etc/cron.hourly/ با nano یا vim یا هر چیز دیگه یه فایل متنی درست کنید به هر اسمی.
sudo nano /etc/croun.hourly/scrip
توی خط اولش اینو بنویسید
#!/bin/bash
الان دستوراتی که میخواهید اجرا بشه رو توی خطهای بعدی بنویسید.
حالا دسترسی اجرایی به اسکریپت بدید
sudo chmod +x /etc/cron.hourly/script
اینجوری هر ساعت اون اسکریپت اجرا میشه. (اگه کامپیوتر خاموش باشه دیگه نه)
-
دمتون گرم. مرسی. خیلی لطف کردین