In my case, this was a bit hard to track down (I used Process Explorer for it), as the culprit was SourceTree running git in the background to keep an eye on changes in the repository because it has a file system watcher on the repository tree and a different process was writing log files in the same directory structure.
Can you still follow? I had a hard time so here it is in manageable bits:
By default SourceTree has a file system watcher on your repositories
If that watcher fires, SourceTree runs a background git process to get the current state of the repository
If you perform UI actions, SourceTree runs a foreground git process to perform the action
SourceTree does not have a mechanism to wait for the background git process to finish before running the foreground process
I had had another process running that logged into a relative directory that happened to be within the repository tree (but using files excluded by .gitignore)
Basically SourceTree should do two things:
keep track of the background process and not fire a foreground one
do not start the background process for files excluded by .gitignore
While checking out an issue with the SSH server for ContinuaCI issue (see info below), I wanted to look at the files leading to the issue: .pem and .rsa files with the private key for the SSH server.
So I browsed through my series of openssl related articles to see if I already had made a script better explaining the cryptic openssl command-line parameters. I didn’t have it yet, but it turned out to be really simple:
The server_keypair.pem file (having the header -----BEGIN ENCRYPTED PRIVATE KEY----- and footer -----END ENCRYPTED PRIVATE KEY-----) was a password protected RSA private key where somehow ContinuaCI had the wrong password for.
I’m not sure it’s a good idea that the server_keypair.pem file has not password at all.
Especially since this compiles fine with the DCC32 compiler:
program CompilerIntrinsicsConsoleProject;
{$APPTYPE CONSOLE}
{$R *.res}
var
I, J, K: Integer;
begin
System.AtomicCmpExchange(I, J, K);
System.AtomicDecrement(I);
System.AtomicExchange(I, J);
System.AtomicIncrement(J);
end.
Or even better: run the appliance, and help the WayBack machine with any archiving projects setup by the virtual appliance: the [WayBack] ArchiveTeam Warrior – Archiveteam.
See some of their other pages for more background information:
On the local machine, go to the right directory, then copy the file from the remote machine:
~ # cd /vmfs/volumes/Samsung512NVME/PSO/VM/W81Entx64CI/
~ # time scp -v username@192.168.71.123:/vmfs/volumes/552f5788-33e30274-8dba-001f29022aed/PSO/W81Entx64CI/W81Entx64CI-flat.vmdk W81Entx64CI-flat.vmdk
I don’t know what’s worse–the fact that after 15 years of using tar I still can’t keep the flags straight, or that after 15 years of technological advancement I’m still mucking with tar flags that were 15 years old when I started.
The last line will logon over ssh and shows the file transfer in a verbose way.
Requirements:
both machines have ssh
local machine has firewall entry to allow client ssh
remote machine has sshd and firewall entry to allow sshd server connections
Decoupling the master detail relations (TDataSource is in the same module as the TDataSets that are being bound; the detail TDataSet references the master TDataSet by pointing its’ MasterSource property to the TDataSource that points to the master TDataSet)
Decoupling the UI from the business layer (TDataSets are in a DataModule; TDataSource is on the Form/Frame which contains your UI controls, UI controls reference their DataSourceproperty).
Since many components can point to the same DataSource, you can quickly switch which underlying TDataSet they use by just flipping one TDataSource.DataSet property.
This works better than "runas /user:administrator cmd.exe" as that forces to use the specific Administrator account, whereas the PowerShell way allows you to specify the actual account during elevation.
Disks are listed under /vmfs/devices/disks/ where there are two entries per device: a path leading to the device, and a link to that path which starts with vml. which I filter out with grep.
If a disk under under /vmfs/devices/disks/ ends with :# where # is a number, then it is a partition
Just skip partedUtil get as partedUtil getptblwill give you exactly the same information,
plus an extra initial line indicating what kind of partition table it is. KB 1036609 has a longer list, but these are the ones you usually see:
unknown: the disk has no partition table yet (usually), or the type of partition table cannot be determined (hardly)
on ESXi 6.x two extra columns listing the partition GUID and partition type description
The output of partedUtil is unformatted, which means it is easy to parse, but hard to read for humans. You can pipe through sed 's/ /\t/g' (as there is no tr on the ESXi busybox)
Some more background reading
On scripting:
The shell is sh (always been there)
There is Python (ESXi 5.1 has Python 2.7.8; ESXi 6.5 has Python 3.5.3; it has likely been available in earlier versions too).
At the recent Embedded Linux Conference and OpenIoT Summit, Mozilla Technical Evangelist Dietrich Ayala proposed a simple and affordable solution to home automation: A discarded smartphone can handle some of the most useful home automation tasks without requiring expensive hubs and sensors — or risking data security in the cloud.