ווטסאפ - לינוקס, BSD, קוד פתוח ותוכנה חופשית בעברית. Whatsup - Linux, BSD, open source and free software in Hebrew

 
 
  כניסת חברים · רישום · שכחתי סיסמה  
tux the penguin
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
מייקילא בפורום כעת ת.הצטרפות: 22/04/2006 · הודעות: 692 · מיקום: גליל
 

הודעה פורסם: 01/06/2019 - 13:39
נושא ההודעה: מדוע סריפט ה BASH נכשל

שלום,
כצלם בנסיעות, יש לי נייד קטן (וחלש) עם LUNUMTU 18.04 (גרסת 32 - זה מה שהמעבד תומך...) לצורך גיבויי קבצי תמונה לשני כונני SSD מכמה מצלמות.

כתבתי את הסקריפט הבא, וכשאני מנסה להריצו (כמשתמש רגיל) הוא נכשל, בין השאר משום שהוא מנסה לעגן את ה SOURCE וה TARGET שלי תחת מחיצת המשתמש שלי (במקום תחת /).

אשמח לעזרה לגבי נקודה זו, ואם יד עוד בעייות בסקריפט- אשמח שתזהו אותן מראש.

תודה מראש לעוזרים

מייקי

------------הסקריפט----------------
קוד:

#!/bin/bash 
read -p  "Camera:  1-D810, 2-D5500 3-D7500" CAMERA
echo
echo  "Selected $CAMERA"  $CAMERA
case $CAMERA in
[1-1]*)  SOURCE='/media/miki/NIKON\ D810/DCIM/'
;;
[2-2]*)  SOURCE='/media/miki/NIKON\ D5500/DCIM/'
;;
[3-3]*)  SOURCE='/media/miki/NIKON\ D7500/DCIM/'
esac
echo
echo  "Selected source camera is $SOURCE"
echo


TARGET1='/media/miki/SSD_BACKUP1/'
TARGET2='/media/miki/SSD_BACKUP2/'

#cd $SOURCE

echo
pwd
read -p 'Press [Enter] to continue..'
echo
rsync -avW $SOURCE $TRAGET1

echo  SSD_BACKUP1 copied
echo

rsync -avW  .  $TARGET2

echo
echo  "Photos copied   "
echo
echo "remaining space
echo"
df -h | grep home
df -h | grep windows
df -h | grep DCIM
df -h  | grep  /media/miki/SSD_BACKUP1
df -h  | grep  /media/miki/SSD_BACKUP2
#fi
exit


 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
צפריראורח · ·
 

הודעה פורסם: 01/06/2019 - 14:32
נושא ההודעה:

מה בדיוק קורה שם? ניסית להריץ את הסקריפט עם bash -x (או לכתוב בתחילתו set -x)?
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
מייקילא בפורום כעת ת.הצטרפות: 22/04/2006 · הודעות: 692 · מיקום: גליל
 

הודעה פורסם: 01/06/2019 - 14:56
נושא ההודעה: תשובה

תודה צפריר,
הוספתי set -x בתחילה. מתנהג אותו דבר כפי שכתבתי כלuמר ה rsync נכשל ומודיע שאין DIRECTORY ב /home/miki/D7500/DCIM . נראה לי שמקור הבעיה ברווח (שנוצר במצלמה) בין המילה NIKON לבין ה D7500 כי ה rsync נראה כך

קוד:

+ rsync  -avW '/media/miki/NIKON\'  D7500/DCIM/




הוא מנסה ליצור DIRECTORY בשם D7500/DCIM תחת המשתמש /home/miki
וזה בברור לא מה שהתכוונתי.
אשמח לעזרה

תודה
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורחאורח · ·
 

הודעה פורסם: 01/06/2019 - 15:36
נושא ההודעה: עזרה לדבג

מייקי :
שלום,
כצלם בנסיעות, יש לי נייד קטן (וחלש) עם LUNUMTU 18.04 (גרסת 32 - זה מה שהמעבד תומך...) לצורך גיבויי קבצי תמונה לשני כונני SSD מכמה מצלמות.

כתבתי את הסקריפט הבא, וכשאני מנסה להריצו (כמשתמש רגיל) הוא נכשל, בין השאר משום שהוא מנסה לעגן את ה SOURCE וה TARGET שלי תחת מחיצת המשתמש שלי (במקום תחת /).

אשמח לעזרה לגבי נקודה זו, ואם יד עוד בעייות בסקריפט- אשמח שתזהו אותן מראש.

תודה מראש לעוזרים

מייקי

------------הסקריפט----------------
קוד:

#!/bin/bash 
read -p  "Camera:  1-D810, 2-D5500 3-D7500" CAMERA
echo
echo  "Selected $CAMERA"  $CAMERA
case $CAMERA in
[1-1]*)  SOURCE='/media/miki/NIKON\ D810/DCIM/'
;;
[2-2]*)  SOURCE='/media/miki/NIKON\ D5500/DCIM/'
;;
[3-3]*)  SOURCE='/media/miki/NIKON\ D7500/DCIM/'
esac
echo
echo  "Selected source camera is $SOURCE"
echo


TARGET1='/media/miki/SSD_BACKUP1/'
TARGET2='/media/miki/SSD_BACKUP2/'

#cd $SOURCE

echo
pwd
read -p 'Press [Enter] to continue..'
echo
rsync -avW $SOURCE $TRAGET1

echo  SSD_BACKUP1 copied
echo

rsync -avW  .  $TARGET2

echo
echo  "Photos copied   "
echo
echo "remaining space
echo"
df -h | grep home
df -h | grep windows
df -h | grep DCIM
df -h  | grep  /media/miki/SSD_BACKUP1
df -h  | grep  /media/miki/SSD_BACKUP2
#fi
exit



קוד:

#!/bin/bash 
read -p  "Camera:  1-D810, 2-D5500 3-D7500" CAMERA
echo
echo  "Selected $CAMERA"  $CAMERA
case $CAMERA in
[1-1]*)  SOURCE='/media/miki/NIKON\ D810/DCIM/'
;;
[2-2]*)  SOURCE='/media/miki/NIKON\ D5500/DCIM/'
;;
[3-3]*)  SOURCE='/media/miki/NIKON\ D7500/DCIM/'
esac
echo
echo  "Selected source camera is $SOURCE"
echo


TARGET1='/media/miki/SSD_BACKUP1/'
TARGET2='/media/miki/SSD_BACKUP2/'

#cd $SOURCE

echo
pwd
read -p 'Press [Enter] to continue..'
echo
echo $TARGET1
ls $SOURCE $TRAGET1

מציע להריץ מה שרשמתי, ולפרסם את הפלט כאן. מה שרשמתי הוא קיצור של המקור, עם שני שינויים בסופו.

קשור לבחירה של 32 ביט: איזה מעבד יש לך?
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 01/06/2019 - 15:36
נושא ההודעה:

שנה את הסטרינגים שלך שיהיו עם מרכאות כפולות ולא יחידות. ז"א:

קוד:
SOURCE="/media/miki/NIKON\ D810/DCIM/"

וכו'.
ובפקודת ה rsync שלך הקף אותם שוב במרכאות כפולות.
קוד:
rsync -avW "$SOURCE" "$TRAGET1"

וכו'.

Dancing
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 01/06/2019 - 16:21
נושא ההודעה:

שים לב שאם אתה מחרוזת במרכאות, ה-backslash ישמר. כלומר במקרה:
קוד:

SOURCE="/media/miki/NIKON\ D810/DCIM/"

בעת השימוש במשתנה הוא ינסה לחפש את התיקייה NIKON לוכסן הפוך רווח D810. כנראה תרצה להוריד את \ אם אתה שם מחרוזת במרכאות.
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
מייקילא בפורום כעת ת.הצטרפות: 22/04/2006 · הודעות: 692 · מיקום: גליל
 

הודעה פורסם: 01/06/2019 - 16:59
נושא ההודעה: תודה לכולם!!!

תודה לכולם,

אנסה בערב (כשאגיע למחשב)
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
מייקילא בפורום כעת ת.הצטרפות: 22/04/2006 · הודעות: 692 · מיקום: גליל
 

הודעה פורסם: 01/06/2019 - 23:00
נושא ההודעה: תודה רבה !! נפתר בעזרתכם

תודה רבה במיוחד לאורח.

השימוש במרכאות כפולות והסרץ ה \ אכן פתרו את הבעיה!
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
עמיתאורח · ·
 

הודעה פורסם: 02/06/2019 - 10:41
נושא ההודעה:

הערה אחת, משום שביקשת, פקודת ה-rsync השנייה מעתיקה מהספרייה הנוכחית, כלומר ישנה הנחה מובלעת שהסקריפט מורץ מספרייה מסויימת (אני רואה שיש פקודה cd $SOURCE, אבל היא נמצאת בהערה). זה מחייב את המשתמש להיכנס במפורש לספרייה לפני ההרצה. יכול להיות שזה מכוון, אבל זה פותח פתח לטעויות - אולי עדיף שהסקריפט, אם אפשר, ידאג לזה בעצמו.

דבר נוסף, מה קורה, למשל, אם המשתמש בחר אופציה לא תקינה? במקרה הזה SOURCE לא יהיה מוגדר. תמיד רצוי לבצע בדיקה, למשל עוד שורה ב-case שלוכדת כל דבר (כלומר, תופעל במקרה שאף אחת מהאפשרויות שלפניה לא מתאימות) ובמקרה זה, תתריע למשתמש ותצא מהסקריפט.
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
הצגת הודעות מלפני:     
מעבר אל:  
כל הזמנים הם GMT + 2 שעות
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
PNphpBB2 © 2003-2004 

תוכן הדיון

  1. מייקי
  2. אורח [צפריר]
  3. מייקי
  4. אורח [אורח]
  5. אורח
  6. אורח
  7. מייקי
  8. מייקי
  9. אורח [עמית]