2010/10/26 deardo <[email protected]>:
> SOURCE=/mnt/SOURCES/*

Ini masalahnya. Kenapa pake * lagi?

Scriptnya di paling atasnya ditulis pake bash, jadi * akan diexpand
lagi. Kalo /mnt/SOURCES ada isinya "file 1" dan "foo", maka $SOURCES
isinya adalah "file 1 foo". Ini bukan karena Linuxnya yg tidak support
tapi karena scriptnya salah.

Kalo cuma untuk rsync -a, cukup menyebutkan directorynya:

  rsync -a /mnt/SOURCES/ /var/tujuan/

Jangan lupa itu "/" di belakang directory penting buat rsync, beda
hasilnya kalo gak pake "/".

Catatan tambahan:

- Opsi -a di rsync itu sama dengan -rlptgoD, jadi tidak perlu
menyebutkan -r lagi.

- Biasakan mengapit isi shell variable dengan quotes: SOURCE="/blah"
(single quotes kalo gak mau expansion)

- Biasakan mengapit shell variable dengan quotes juga ketika menggunakannya:

  rsync -a "$SOURCE" "$DEST"

  kalo tidak diquote dan isi variablenya ada spasinya ntar bilangnya
Linuxnya nggak support lagi :-)

- Saya sering ketemu banyak orang menyesal menggunakan nama file yg
berdasarkan tanggal tapi menulisnya tidak tahun-bulan-tanggal, karena
tidak bisa disort.

- Baris terakhir itu bisa dibikin lebih efisien dengan:

  find /var/BACKUP/DSCTL -maxdepth 1 -type d -mtime +30 -print0 |
xargs -0 rm -vrf

  tidak perlu pake for loop dan tidak perlu pake * lagi (itu udah
kerjaannya si find). Lebih mudah lagi pake tmpreaper (atau sejenisnya,
seperti tmpwatch):

  tmpreaper +30d /var/BACKUP/DSCTL


Ronny

-- 
FAQ milis di http://wiki.linux.or.id/FAQ_milis_tanya-jawab
Unsubscribe: kirim email ke [email protected]
Arsip dan info milis selengkapnya di http://linux.or.id/milis

Kirim email ke