The invention discloses metal rust-preventive oil comprising butyl acrylate. The oil is prepared from the raw materials of: No.120 solvent oil, paraffin, methyl diethanolamine, epoxy octyl stearate, magnesium naphthenate, a silane coupling agent KH560, a silane coupling agent A171, microcrystalline wax, aluminum stearate, magnesium lanolin soap, monoethanolamine, barium petroleum sulfonate, sodium lauryl sulfate, trioctyl trimellitate, benzotriazole, 2-aminoethyl heptadecenyl imidazoline, zinc stearate, an antioxidant BHT, an antioxidant 1010, dipropylene glycol, phytic acid, butyl acrylate, modified nano-grade dolomite powder, a composite film-forming material, and ferrocene. The rust-preventive oil provided by the invention has excellent contact rust resistance and good gas-phase rust resistance. The rust-preventive oil provided by the invention provides good gas-phase rust resistance and contact rust resistance for steel and brass.