How to automate rsync in OS X with remote server - macos

My remote Server is samba server, which is accessible by both Mac and Windows machine.I created a common folder in Samba server. I want my local folder to be in sync with the common folder on my samba Server. Because when internet connection is lost i am unable to access the files copied to common folder.For that sake i want to sync my local folder with it.
My goals are:
When i remove files from local folder,it should get removed in common folder in samba server
Similarly when i modify or delete files in common folder, it should get reflected in local folder of my machine.
I tried rsync:
rsync --progress -avzC --stats --force Source root#remoteserver:/path
But how do I automate syncing from both sides?
Note: For this i can rely on Dropbox, Boxsync or some cloud share app support. But i want to implement my own functionality, I don't want to rely on Third party API.

Related

Mount fritzbox FTPS drive on Windows showing hidden files

If I take a
FritzBox 7590,
enable FTPS access from the internet to a shared folder on hard disk connected to FritzBox via USB,
use RaiDrive on a remote Windows machine to mount the directory accessed via FTPS,
directories of the form .foo, e.g. .git won't be shown in explorer or with commands like ls -la. The FTPS client really does not receive these directories, it is not just a problem of telling Windows Explorer to view hidden files.
The requirements are:
I want to use FritzBox as a server.
I need some FTPS client being able to mount the remote drive to some mounting point like R:\ or at least some NTFS folder. Which client it is, does not matter.
The goal is to have a directory containing some .git subdir where the former is used as git remote for all clients who connect to FritzBox and want to git push some commits.
Is it a fault in FritzBox's FTPS Server?
Is there any solution to be able to view hidden .git directory?

Git for windows setting different permissions on files in same repo

I have a local repository on my host machine. I need to clone this repo from the host machine to a vm running debian. Folders are shared, files are accessible.
But git seems to set different permission for different parts of the repo.
So while most files have my windows user set to Full control, the individual files in ./.git/objects//* have just the SYSTEM/Admin/Administrator permissions and not my windows user. Mind you, the folders in ./.git/objects/* have my windows user set, but the files within not.
Because of this git clone fails for these files. Is there a way to tell git to add my windows user to any file it creates?

Getting vagrant synced folders to work on windows with openstack

I'm using vagrant-openstack-plugin to handle openstack integration and it uses a builtin rsync synced folder provider, I can't get it to use the plugin I specify (winrm) even by hacking the code a little.
For the record I can get rsync to work (with winsshd and cwrsync and a junction point from C:\cygdrive\C to C:\), but it's really gnarly.
I'm open to non-ssh/non-rsync synced folder options for windows (NFS? SMB only works if the host is Windows), but I need the openstack plugin to respect my choice of synced folder plugin first.

How to sync content (images and files) between plonesites

I have a client who has both a public website and an intranet. The client wants to have a shared media library between the two websites.
In the past this could be done with Products.Zsyncer or collective.PloneMultiSync2, but both these products are old and don't seem te be actively maintained.
What is the currently advisable way to solve this?
This is probably not exactly what you need, but a partial solution can be the usage of Reflecto.
Files and images should be loaded on the server filesystem (and so: they can be rsynced even if Plone sites are on different server) and to do this you must rely on additional stuff like an FTP or similar.
Copying and bootstrapping a Plone site to a new computer
1) Create a new site in the destination using Plone installer and make sure you can log-in to the site with temporary admin account
2) Copy var/filestorage/Data.fs from the old system to the new system - note that admin password is stored in Data.fs and the password given during the creation of a new site is no longer effective after Data.fs copy
3) Copy blobs from the old system to the new system by copying var/blobstorage/ folder
4) Copy src/ folder from the old system if you have any custom development code there
5) Copy buildout.cfg and other .cfg files
6) Rerun buildout in order to automatically re-download and configure all
7) Python packages needed to run the site
python bootstrap.py to make the buildout use new local Python interpreter
8) Then bin/buildout to regenerate parts/ folder
Copying site data in UNIX environment
Below are example UNIX commands to copy a Plone site data from a computer to another over SCP/SSH connection. The actual username and folder locations depend on your system configuration.
Note: a copy of the Plone site configuration must already exist on the target computer. These instructions are only for copying / back-uping site data.
This operation can be perfomed on a running system - Data.fs is append only file and you will simply lose transactions which happened during the copying of the end of the file.
Copy local to remote
Run this command in your buildout Plone installation.
Copy Data.fs database:
scp -C -o CompressionLevel=9 var/filestorage/Data.fs plone#server.com:/srv/plone/site/var/filestorage
Copy BLOB files using rsync
BLOB files contain file and image data uploaded to your site. Since the actual content of file rarely changes after upload, rsync can synchronize only changed files using -a (archive) flag.
rsync -av --compress-level=9 var/blobstorage plone#server.com:/srv/plone/site/var

backup collabnet subversion edge to another hard disk

I've installed Collabnet Subversion Edge, and would like to make sure I have it backed up properly. I would like NOT to use the CloudBackup service offered.
I've went to the administration interface for collabnet (localhost:3343) and went to Repositories > Backup Schedule. There, one can choose between 3 different 'Type of Job':
Cloud Services Backup
Full Dump Backup
Hotcopy Backup
Neither lets you choose where to copy the backup. I've tried looking up how this works, but documentation seems to be lacking a lot.
What is the best way to backup such a repository? Shall I just keep a copy of the entire collabnet folder (c:\csvn)?
The Subversion Edge admin UI lets you specify the folder for backups. It defaults to a folder inside the normal data folder, but you can specify a different value. So, for example, if you have a D:\ drive that you want the backups to go on you can just specify that folder in the settings and the backups will go to that folder.
It does need to be a physically accessible hard drive though.
See the Backup Directory configuration item in this screenshot:
https://ctf.open.collab.net/sf/projects/svnedge/screenshots/screens/config/config.png
You can use Windows Server Backup to backup Subversion repositories. It allows you to shedule backups
to a network share, dedicated backup volume, writeable media. For example, wbadmin command-line tool allows you to safely backup your repositories. This simple command performs one-time copy backup of C:\foo\bar to X:\ volume:
wbadmin start backup –backupTarget:x: -include:c\foo\bar -vsscopy
(To install Windows Server Backup, run ocsetup WindowsServerBackup in elevated command-prompt).
You can setup backup in different ways:
wbadmin command-line tool,
PowerShell cmdlets, good for automation and customization of backup actions,
Windows Server Backup wizard (control panel, actually) MMC snap-in.
It's not required to stop server's service when you run the backup because FSFS repository backend is always in consistent state.
Here are general tips about recovering Subversion repository from a backup:
Recover repository backup to an empty directory to make sure that restored repository files won't mix with files of the broken one. After repository if recovered, you can delete broken repository and then replace it with the recovered one.
Stop-start cycle your Subversion server after recovering repository from a backup.
If your clients get errors after repository recover, run svnadmin recover against it. The command finishes instantly and makes repository accessible again.
If you have access to the repository directories then you should be able to use hotcopy directly and specify where the backups go.
It's enough to take a periodical backup of just csvn/data directory where all your repositories and configuration files are stored.
Visit this link for backup (and upgrade) options. The contents in the link is added below. Hope it helps.
Manual Upgrade/Reinstallation Steps
Subversion Edge includes an integrated mechanism for installing updates. This is the preferred way to do an upgrade as it handles whatever steps are needed to perform the upgrade and can be done remotely from your web browser. However, there are scenarios where you might want or need to do an upgrade manually, for example your Subversion Edge server might not be able to access the Internet to pull down the updates or maybe one or more critical installation files have become corrupted and you need to reinstall using the same version. Here are the steps for performing a manual upgrade or reinstallation:
Windows
If your existing Subversion Edge installation was installed using the installer from Subversion Edge 2.0.0 or later, then all you need to do to upgrade is download the latest installer and run it. This will uninstall the current version and install the new version (which is how the Windows Installer (.msi) process works for upgrades).
If you are not sure what version you installed with, you can always safely use this approach:
Stop the existing services and uninstall the current version from the
Windows Control Panel. This will leave behind your C:\csvn folder and
any files in it that have been modified since the original install.
Delete everything in the C:\csvn folder EXCEPT the data folder. So
you should be left with just the C:\csvn\data folder.
Install the new version. The installer will pick up the existing data folder and when the services start it will basically just be an upgrade to the new
version.
WARNING: Take note of this reported bug and backup the svn_access_file first:
artf7081 - Using Windows installer for updates can overwrite the svn_access_file
Linux/Solaris
To upgrade a Linux/Solaris installation, this is the safest way to do it:
Stop the servers $ bin/csvn stop $ bin/csvn-httpd stop
Rename the csvn folder $ mv csvn csvn-old
Untar the new release as a non-root user
Move the data folder back into the new release
$ mv csvn-old/data csvn
Important! Copy "dist" configuration files to data folder
$ cp -f csvn/dist/*.dist csvn/data/conf
Start the servers
$ bin/csvn start
$ bin/csvn-httpd start

Resources