Ya, rsync sangat cocok untuk kebutuhan itu. Yang Anda inginkan adalah:
✅ File
.phpdi root → masuk ke/var/www/shared/local/jurnalmengajar/✅ File
.phpdi subfolder → masuk ke subfolder yang sesuai di STB✅ File non-
.phpyang sudah ada di STB tetap utuh✅ File non-
.phpdari laptop tidak dikirim✅ Tidak menghapus file apa pun di STB
Gunakan perintah berikut dari laptop:
rsync -av \
--include='*/' \
--include='*.php' \
--exclude='*' \
./ \
root@stb:/var/www/shared/local/jurnalmengajar/
Karena sumbernya adalah ./, maka struktur folder akan dipertahankan.
Misalnya di laptop:
all_php_shared_stb/
├── lib.php
├── index.php
├── classes/
│ ├── helper.php
│ └── api.php
├── db/
│ └── install.php
└── cli/
└── cron.php
Maka di STB akan menjadi:
/var/www/shared/local/jurnalmengajar/
├── lib.php ← diperbarui
├── index.php ← diperbarui
├── classes/
│ ├── helper.php ← diperbarui
│ ├── api.php ← diperbarui
│ └── style.css ← tetap ada
├── db/
│ ├── install.php ← diperbarui
│ └── upgrade.xml ← tetap ada
└── cli/
└── cron.php ← diperbarui
File seperti:
style.csslogo.pngicon.svgtemplate.mustachelang/id/local_jurnalmengajar.php(jika bukan PHP tidak akan terkirim)
tidak akan dihapus karena Anda tidak menggunakan --delete.
Sebelum benar-benar mengirim
Saya sarankan cek dulu dengan mode simulasi:
rsync -avn \
--include='*/' \
--include='*.php' \
--exclude='*' \
./ \
root@stb:/var/www/shared/local/jurnalmengajar/
Jika daftar file yang akan disalin sudah benar, jalankan kembali tanpa -n:
rsync -av \
--include='*/' \
--include='*.php' \
--exclude='*' \
./ \
root@stb:/var/www/shared/local/jurnalmengajar/
Perintah ini aman untuk sinkronisasi kode PHP karena hanya memperbarui file .php dan tidak menghapus file lain yang sudah ada di STB.


